Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/05/2011, 16:22
jahireffer
 
Fecha de Ingreso: mayo-2011
Mensajes: 9
Antigüedad: 13 años, 8 meses
Puntos: 1
Problema al Unir consultas

Hola muchachos, de nuevo yo dando que hacer resulta que tengo la siguiente consulta:
Código SQL:
Ver original
  1. SELECT L.NOMBRE
  2.              ,CAST(ISNULL((SELECT SUM(CANTORIG)  FROM MVTRADE WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'OR' GROUP BY PRODUCTO),0) AS DECIMAL)OC_CANTIDAD
  3.              ,CAST(ISNULL((SELECT SUM(VALORUNIT) FROM MVTRADE WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'OR' GROUP BY PRODUCTO),0) AS DECIMAL)OC_EN_$
  4.              ,CAST(ISNULL((SELECT SUM(CANTORIG)  FROM MVTRADE WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'FP' GROUP BY PRODUCTO),0) AS DECIMAL)EJECUTANDO_CANTIDAD
  5.              ,CAST(ISNULL((SELECT SUM(VALORUNIT) FROM MVTRADE WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'FP' GROUP BY PRODUCTO),0) AS DECIMAL)EJECUTANDO_$
  6. FROM MTMERCIA M INNER JOIN MTLINEA L ON M.CODLINEA = L.CODLINEA
  7. WHERE NOMBRE='CINTAS' AND M.CODLINEA LIKE 'ME%'
El cual me arroja lo siguiente:
Código SQL:
Ver original
  1. NOMBRE      OC_CANTIDAD   OC_EN_$      EJECUTANDO     EJECUTANDO_$
  2.  
  3. CINTAS          162000      108           162000         197
  4. CINTAS           48520       68            34120          57
  5. CINTAS          108800      174            98500         238
La idea es que me totalice mostrando solo un registro en este caso 'CITAS' con el respectiva total de sus demas campos, la idea mas logica seria agrupar pero al hacerlo tambien me pide agrupar por el campo 'M.CODIGO' debido a que lo llamo en lo utilizo para filtar en las subconsultas, pero no puedo agrupar por 'M.CODIGO'porque cada CITA que aparece en el registro es de un codigo diferente por lo que me arrojaria los mismos registros repetidos, pense en esto:

Código SQL:
Ver original
  1. --CONSULTA 1
  2.  
  3. SELECT L.NOMBRE,CAST(SUM(CANTORIG)AS DECIMAL)  OC_CANTIDAD
  4. FROM MVTRADE INNER JOIN MTMERCIA M ON PRODUCTO = M.CODIGO
  5.              INNER JOIN MTLINEA L ON M.CODLINEA = L.CODLINEA
  6. WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'OR'
  7. GROUP BY L.NOMBRE;
  8.  
  9. --CONSULTA 2
  10.  
  11. SELECT L.NOMBRE,CAST(SUM(VALORUNIT)AS DECIMAL) OC_EN_$
  12. FROM MVTRADE INNER JOIN MTMERCIA M ON PRODUCTO = M.CODIGO
  13.              INNER JOIN MTLINEA L ON M.CODLINEA = L.CODLINEA
  14. WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'OR'
  15. GROUP BY L.NOMBRE;
  16.  
  17. --CONSULTA 3
  18.  
  19. SELECT L.NOMBRE,CAST(SUM(CANTORIG)AS DECIMAL) EJECUTANDO_CANTIDAD
  20. FROM MVTRADE INNER JOIN MTMERCIA M ON PRODUCTO = M.CODIGO
  21.              INNER JOIN MTLINEA L ON M.CODLINEA = L.CODLINEA
  22. WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'FP'
  23. GROUP BY L.NOMBRE;
  24.  
  25. --CONSULTA 4
  26.  
  27. SELECT L.NOMBRE,CAST(SUM(VALORUNIT)AS DECIMAL) EJECUTANDO_$
  28. FROM MVTRADE INNER JOIN MTMERCIA M ON PRODUCTO = M.CODIGO
  29.              INNER JOIN MTLINEA L ON M.CODLINEA = L.CODLINEA
  30. WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'FP'
  31. GROUP BY L.NOMBRE
  32. ORDER BY NOMBRE;
4 consultas las cuales me arrojan esto respectivamente:

Código SQL:
Ver original
  1. ---CONSULTA 1
  2. NOMBRE                                                          OC_CANTIDAD
  3.  
  4. ACCESORIOS EXTERNOS                                             108675
  5. AMPOLLAS                                                        23784
  6. ANGEOS                                                          5000
  7. BOLSAS CONSUMIBLES                                              50000
  8. BOLSAS PRODUCTO TERMINADO                                       396830
  9. CINTAS                                                          2423490
  10.  
  11. ---CONSULTA 2
  12. NOMBRE                                                           OC_EN_$
  13. ACCESORIOS EXTERNOS                                             811301
  14. AMPOLLAS                                                        0
  15. ANGEOS                                                          11458
  16. BOLSAS CONSUMIBLES                                              13
  17. BOLSAS PRODUCTO TERMINADO                                       5846
  18. CINTAS                                                          725
  19.  
  20. ---CONSULTA 3
  21.  
  22. NOMBRE                                                      EJECUTANDO_CANTIDAD
  23. ACCESORIOS EXTERNOS                                             269346
  24. AMPOLLAS                                                        23784
  25. ANGEOS                                                          4500
  26. BOLSAS CONSUMIBLES                                              50000
  27. BOLSAS PRODUCTO TERMINADO                                       409330
  28. CINTAS                                                          1892290
  29.  
  30.  
  31. ---CONSULTA 4
  32. NOMBRE                                                          EJECUTANDO_$
  33. ACCESORIOS EXTERNOS                                             816946
  34. AMPOLLAS                                                        0
  35. ANGEOS                                                          8993
  36. BOLSAS CONSUMIBLES                                              13
  37. BOLSAS PRODUCTO TERMINADO                                       8312
  38. CINTAS                                                          801

Como pueden ver el el primer campo de las 4 consultas los registros son los mismos mientras que los otros campos son diferentes en cada consulta, la idea es que me quede asi:

Código SQL:
Ver original
  1. NOMBRE                                                          OC_CANTIDAD      OC_EN_$
  2. ACCESORIOS EXTERNOS                                             811301            108675
  3. AMPOLLAS                                                        0                  23784
  4. ANGEOS                                                          11458               5000
  5. BOLSAS CONSUMIBLES                                              13                 50000
  6. BOLSAS PRODUCTO TERMINADO                                       5846              396830
  7. CINTAS                                                          725              2423490

Claro mas los otros dos campos de las dos ultimas consulta (EJECUTANDO_CANTIDAD y EJECUTANDO_$) se que prodria usar la funcion 'pivot', pero no tengo idea de como se maneja, yo prefiero usar 'case', pero tampoco logro con lo deseado..... porfavor si alguien me puede ayudar lo agradeceria fulllll.....