SQL - Sentencias Select anidadas

 
Vista:

Sentencias Select anidadas

Publicado por JOSE ANTONIO (5 intervenciones) el 01/10/2001 21:00:11
Hola a todos, estoy intentando hacer una sentencia Select anidada para poder hacer una única suma de un campo 'x' agrupado por varios campos, ya que en la segunda sentencia, me salen varias sumas del agrupamiento. La sintaxis que he usado es la siguiente:

SELECT sum(x) FROM TABLA WHERE x IN (SELECT x, y, zFROM SEROLOGIA GROUP BY x, y, z) GROUP BY y.

Si alguien puede ayudarme se lo agradecería.

Saludos

Jose Antonio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sentencias Select anidadas

Publicado por Pedro (3 intervenciones) el 02/10/2001 12:29:56
El unico problema que le veo a tu select está en la segunda parte. Cuando usas Select con la forma \"WHERE x IN\" la segunda select, la que va en parentesis, no puede recuperar mas que un campo. No se si la solución que te doy te será util pero deberias intentar algo así:

SELECT sum(x) FROM TABLA WHERE x IN (SELECT x FROM SEROLOGIA )
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

RE:Sentencias Select anidadas

Publicado por JOSE ANTONIO (5 intervenciones) el 02/10/2001 19:12:30
Hola Pedro, la sentencia que me has escrito no es la que necesito. O sea yo necesito sumar un campo de una tabla, pero no todos los registros, sino los distintos según otros campos, y cuando intento la siguiente sentencia:

SELECT sum(x) FROM TABLA WHERE x IN (SELECT x FROM TABLA GROUP BY x,y,z) GROUP BY y

me salen tantas sumas como grupos distintos de x,y,z haya, pero yo quiero que a la vez me sume esos grupos, o sea, que si hay 10 registros distintos con x,y,z me sume esos 10 registros sólo, y no me sume 2 registros de cada uno de los grupos x,y,z, para que al final me quede la suma de los 10 registros con x,y,z distintos agrupados por y, no todos los registros de la tabla agrupados por y.

Espero haberme expresado y que puedas ayudarme.

Saludos

Jose Antonio
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

RE:Sentencias Select anidadas

Publicado por alberto (19 intervenciones) el 03/10/2001 09:08:44
En principio no se si he entendido bien tu problema, pero al analizar la sentencia que usas, la parte WHERE x IN (SELECT x FROM TABLA GROUP BY x,y,z) para lo único que sirve es para seleccionar los registros que se van a recuperar y por lo tanto sumar, de tal forma que si los TABLA es la misma que en SELECT sum(x) FROM TABLA, dicha parte no selecciona nada y tu sentencia queda exactamente igual que si pones SELECT sum(x) FROM TABLA GROUP BY y, de tal forma que lo que realmente obtenemos es la suma de x agrupada por los distintos valores de y.
Ahora bién, si lo que quieres es obtener la suma de x sin agrupar por nada, la sentencia que deberías usar es SELECT sum(x) FROM TABLA.
Espero que te sirva.
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

RE:Sentencias Select anidadas

Publicado por JOSE ANTONIO (5 intervenciones) el 03/10/2001 19:39:47
Hola a los tres. Gracias por vuestra ayuda. Ya he conseguido hacer lo que quería con la sentencia:

SELECT sum(x) FROM (SELECT x,y,z FROM TABLA GROUP BY x,y,z) GROUP BY y

Saludos

Jose Antonio
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