SQL - Consulta SQL en Access

 
Vista:

Consulta SQL en Access

Publicado por Guido (2 intervenciones) el 04/06/2010 18:02:48
Hola gente, ojala alguien me pueda dar una mano. Es una consulta SQL simple pero compleja a la vez.
Imaginen que tenemos la tabla DATOS:

CAMPOS: id(autoincremental)--Nombre--Sueldo
con los valores:
1, Juan, 5.00
2, Pedro, 4.00
3, Lucas, 3.00
4, Pedro, 4.00
5, Matias, 4.00
...

yo necesito hacer una counsulta que me SUME (SUM) y me muestre solo el resultado de la suma de la columna Sueldo, pero SOLAMENTE tiene que sumar 1 vez por cada nombre distinto.
Es decir en nuestro ejemplo tiene que mostrar: 16... pues Pedro esta 2 veces entonces se suma SOLO una entrada de Pedro. Vale aclarar que cada entrada de Pedro va a tener como sueldo 4 pues es logicamente su sueldo y no cambia. Otra aclaracion es que hay varias personas que cobran el mismo sueldo (Pedro y Matias en el ejemplo)

La unica restriccion es que no puedo crear ni usar tablas auxiliares.

Ojala que me puedan ajudar xq no me sale y estoy hace un tiempo ya con esta consulta.
saludos a todos y gracias desde ya.

Guido.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:Consulta SQL en Access

Publicado por Leonardo Josue (1173 intervenciones) el 04/06/2010 21:37:12
Hola Guido... con las concideraciónes que hiciste de que el sueldo para cada uno de las personas no cambia, entonces lo que puedes hacer es lo siguiente:

SELECT sum(Tabla.[Sueldo]) as total FROM
(
SELECT distinct Tabla.[Nombre], Tabla.[Sueldo]
FROM Tabla
);

El select interno al utilizar la cláusula Distinct te regresa todos aquellos registros diferentes que se encuentran en la tabla, es decir (ojo, observa que no coincidero el campo ID, ya que si lo pones entonces toma cada registro para pedro como diferente). el select interno entonces te daría algo como esto:

Nombre|Sueldo
---------------------------
Juan|5.00
Pedro|4.00
Lucas|3.00
Matias|4.00

Finalmente el select externo realiza la sumatoria de los registros diferentes, por lo tanto obtendrías lo siguiente

total
-------
16

Saludos y espero tus comentarios.
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Consulta SQL en Access

Publicado por Guido (2 intervenciones) el 05/06/2010 01:05:33
IMPECABLE... muchas gracias !! no sabia que se podia poner un select despues del from.

Yo lo habia resuelto con 2 consultas, una con un select into una tabla temporal con los datos de SELECT distinct Tabla.[Nombre], Tabla.[Sueldo] y despues hacia otra consulta para sumar el campo sueldo, con lo cual llegaba al resultado pero eran 2 consultas y creaba una tabla tempotal !...

Bueno, muchas gracias de nuevo. saludos

Guido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta SQL en Access

Publicado por Edmund (1 intervención) el 16/12/2014 22:46:32
Hola Leonardo Josué, estoy interesado en la respuesta a Guido, y si aún estás activo en esta web quisiera saber si me puedes ayudar con lo siguiente: Tengo un proyecto para biblioteca y quisiera que en un formulario mediante un cuadro de lista me despliegue toda la existencia de libros, el procedimiento es el mismo utilizado para calcular un inventario teórico: Saldo Inicial (+)Compras (-)Bajas (-)Préstamos (+)Devluciones (=)SaldoFinal; solo que en el contexto de mi proyecto sería: InvInicial (+)09INGRESOS (-)10EGRESOS (-)11VALES_PRÉSTAMO (+)12DEVOLUCIONES. En total son 6 tablas que intervienen el InvInicial pertenece a la tabla 02LIBROS. Los valores de 11VALES_PRÉSTAMO y 12DEVOLUCIONES deben ser "Totales" a la fecha que se solicite. Por cualquier ayuda estaré muy agradecido. Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar