SQL - Subqueries!

 
Vista:

Subqueries!

Publicado por Ariel Setton (8 intervenciones) el 06/03/2006 19:04:47
Necesito hacer lo siguiente:

Tengo en una tabla "SERIE" cierta cantidad de columnas, con un indice que está compuesto por algunas de esas columnas, ejemplo colA, colB, colC, Denominacion, colD, colE (donde colA, colB y colC definen una Denominacion, pero luego pueden existir mas de una fila con la misma colA, colB, colC y Denominacion, pero diferente en colD, colE).

A su vez yo tengo otra tabla "MONTOS" que me define montos, y el punto de contacto entre ambas tablas es colA, colB y colC. A mi lo que me interesa es generar un listado que me muestre la suma del Monto para cada una de las Denominaciones, pero el inconveniente que tengo es que si las Denominaciones tienen mas de una fila en "SERIE", al hacer las condiciones de igualdad me aparecen los montos "reales" multiplicados por "n" donde "n" es la cantidad de filas en la tabla SERIE que se repite el cod de colA, colB, colC.

Para solucionar el inconveniente cree una subconsulta que determina en un principio las filas unicas de colA, colB, colC y Denominacion, y luego en la consulta general la idea es que iguale los campos de MONTO a los de la subconsulta, asi no tengo Montos inflados. el problema es que no funciona como yo esperaba y busco que alguien me ayude en mi humilde tarea...!! Estoy hace unos dias con esto dandome vueltas, y me está trabando el trabajo...

el SQL es el siguiente:

SELECT c.colA, c.colB, c.colC, s2.Denominacion, SUM(c.CVigente) AS CV
FROM MONTOS c, SERIE s2
WHERE c.colA=s2.colA AND c.colB=s2.colB AND c.colC=s2.colC
AND EXISTS(
SELECT DISTINCT s.colA, s.colB, s.colC, s.Denominacion
FROM SERIE s
WHERE s.colA=s2.colA AND s.colB=s2.colB AND s.colC=s2.colC
)
GROUP BY c.colA, c.colB, c.colC, s2.Denominacion;
;
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