Problema con JOINS
Publicado por Efren (21 intervenciones) el 25/09/2008 19:31:17
Hola foro, espero me puedan ayudar con este problema..
tengo dos vistas que ambas tienen las mismas columnas excepto 1 que viene siendo el campo calculado (total)
en la tabla 1 tengo estos datos
GRUPO CATEGORIA FCTS
FIN Customs 8.44073391
FIN Material Handling 8.557352304
FIN Outside Services and Consulting 9.511316299
26.50940251
en la tabla 1 tengo estos datos
GRUPO CATEGORIA EXPENSE
FIN Business Licences -0.355910771
FIN Customs 9.218031745
FIN Material Handling 5.352600975
FIN Operating and Office Supplies 0.439726469
FIN Others 0.310264726
FIN Outside Services and Consulting 0.652982352
* ahora bien, el Join tengo que hacerlo por medio de la caterogia, y cuando lo hago me repite algunos valores o los dobletea, tambien necesito que los registros que tenga una tabla que no tenga la otra tambien los ponga y le ponga valor cero. alguna sugerencia? aqui abajo pongo los resultados como deberia tenerlos, aunque no se ve bien por ser campo de texto.. :(
* Lo que hace el query este es sacar la diferencia de las dos tablas de la priumera la columan FCTS y la segunda la columna EXPENSE
PERIODO GRUPO CATEGORIA FCTS EXPENSE VARIATION
9 FIN Customs 8.44073391 9.218031745 -0.777297835
9 FIN Material Handling 8.557352304 5.352600975 3.204751329
9 FIN Outside Services and Consulting 9.511316299 0.652982352 8.858333947
9 FIN Business Licences 0 -0.355910771 0.355910771
9 FIN Operating and Office Supplies 0 0.439726469 -0.439726469
9 FIN Others 0 0.310264726 -0.310264726
lo que tengo hecho es algo como esto:
SELECT E.PERIODO, F.GRUPO, E.[GROUP], ISNULL(SUM(F.FCTS),0) AS FCST, ISNULL(SUM(E.EXPENSE),0) AS EXPENSE,
ISNULL(SUM(F.FCTS),0) - ISNULL(SUM(E.EXPENSE),0) AS VARIATION
FROM VIEWFCST AS F
FULL JOIN VIEW_EXPENSE AS E
ON F.[GROUP] = E.[GROUP] AND F.PERIODO = E.PERIODO
WHERE F.PERIODO = '9' AND E.PERIODO = '9' AND F.GRUPO = 'FIN' --AND E.GRUPO = 'G ADM'
GROUP BY F.GRUPO, E.[GROUP], E.PERIODO
Espero me puedan dar un norte. de antemano gracias.
Efren
tengo dos vistas que ambas tienen las mismas columnas excepto 1 que viene siendo el campo calculado (total)
en la tabla 1 tengo estos datos
GRUPO CATEGORIA FCTS
FIN Customs 8.44073391
FIN Material Handling 8.557352304
FIN Outside Services and Consulting 9.511316299
26.50940251
en la tabla 1 tengo estos datos
GRUPO CATEGORIA EXPENSE
FIN Business Licences -0.355910771
FIN Customs 9.218031745
FIN Material Handling 5.352600975
FIN Operating and Office Supplies 0.439726469
FIN Others 0.310264726
FIN Outside Services and Consulting 0.652982352
* ahora bien, el Join tengo que hacerlo por medio de la caterogia, y cuando lo hago me repite algunos valores o los dobletea, tambien necesito que los registros que tenga una tabla que no tenga la otra tambien los ponga y le ponga valor cero. alguna sugerencia? aqui abajo pongo los resultados como deberia tenerlos, aunque no se ve bien por ser campo de texto.. :(
* Lo que hace el query este es sacar la diferencia de las dos tablas de la priumera la columan FCTS y la segunda la columna EXPENSE
PERIODO GRUPO CATEGORIA FCTS EXPENSE VARIATION
9 FIN Customs 8.44073391 9.218031745 -0.777297835
9 FIN Material Handling 8.557352304 5.352600975 3.204751329
9 FIN Outside Services and Consulting 9.511316299 0.652982352 8.858333947
9 FIN Business Licences 0 -0.355910771 0.355910771
9 FIN Operating and Office Supplies 0 0.439726469 -0.439726469
9 FIN Others 0 0.310264726 -0.310264726
lo que tengo hecho es algo como esto:
SELECT E.PERIODO, F.GRUPO, E.[GROUP], ISNULL(SUM(F.FCTS),0) AS FCST, ISNULL(SUM(E.EXPENSE),0) AS EXPENSE,
ISNULL(SUM(F.FCTS),0) - ISNULL(SUM(E.EXPENSE),0) AS VARIATION
FROM VIEWFCST AS F
FULL JOIN VIEW_EXPENSE AS E
ON F.[GROUP] = E.[GROUP] AND F.PERIODO = E.PERIODO
WHERE F.PERIODO = '9' AND E.PERIODO = '9' AND F.GRUPO = 'FIN' --AND E.GRUPO = 'G ADM'
GROUP BY F.GRUPO, E.[GROUP], E.PERIODO
Espero me puedan dar un norte. de antemano gracias.
Efren
Valora esta pregunta


0