Hola muchachos, de nuevo yo dando que hacer resulta que tengo la siguiente consulta:
Código SQL:
Ver originalSELECT L.NOMBRE
,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
,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_$
,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
,CAST(ISNULL((SELECT SUM(VALORUNIT) FROM MVTRADE WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'FP' GROUP BY PRODUCTO),0) AS DECIMAL)EJECUTANDO_$
FROM MTMERCIA M INNER JOIN MTLINEA L ON M.CODLINEA = L.CODLINEA
WHERE NOMBRE='CINTAS' AND M.CODLINEA LIKE 'ME%'
El cual me arroja lo siguiente:
Código SQL:
Ver originalNOMBRE OC_CANTIDAD OC_EN_$ EJECUTANDO EJECUTANDO_$
CINTAS 162000 108 162000 197
CINTAS 48520 68 34120 57
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--CONSULTA 1
SELECT L.NOMBRE,CAST(SUM(CANTORIG)AS DECIMAL) OC_CANTIDAD
FROM MVTRADE INNER JOIN MTMERCIA M ON PRODUCTO = M.CODIGO
INNER JOIN MTLINEA L ON M.CODLINEA = L.CODLINEA
WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'OR'
GROUP BY L.NOMBRE;
--CONSULTA 2
SELECT L.NOMBRE,CAST(SUM(VALORUNIT)AS DECIMAL) OC_EN_$
FROM MVTRADE INNER JOIN MTMERCIA M ON PRODUCTO = M.CODIGO
INNER JOIN MTLINEA L ON M.CODLINEA = L.CODLINEA
WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'OR'
GROUP BY L.NOMBRE;
--CONSULTA 3
SELECT L.NOMBRE,CAST(SUM(CANTORIG)AS DECIMAL) EJECUTANDO_CANTIDAD
FROM MVTRADE INNER JOIN MTMERCIA M ON PRODUCTO = M.CODIGO
INNER JOIN MTLINEA L ON M.CODLINEA = L.CODLINEA
WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'FP'
GROUP BY L.NOMBRE;
--CONSULTA 4
SELECT L.NOMBRE,CAST(SUM(VALORUNIT)AS DECIMAL) EJECUTANDO_$
FROM MVTRADE INNER JOIN MTMERCIA M ON PRODUCTO = M.CODIGO
INNER JOIN MTLINEA L ON M.CODLINEA = L.CODLINEA
WHERE PRODUCTO = M.CODIGO AND ORIGEN= 'COM' AND TIPODCTO = 'FP'
GROUP BY L.NOMBRE
ORDER BY NOMBRE;
4 consultas las cuales me arrojan esto respectivamente:
Código SQL:
Ver original---CONSULTA 1
NOMBRE OC_CANTIDAD
ACCESORIOS EXTERNOS 108675
AMPOLLAS 23784
ANGEOS 5000
BOLSAS CONSUMIBLES 50000
BOLSAS PRODUCTO TERMINADO 396830
CINTAS 2423490
---CONSULTA 2
NOMBRE OC_EN_$
ACCESORIOS EXTERNOS 811301
AMPOLLAS 0
ANGEOS 11458
BOLSAS CONSUMIBLES 13
BOLSAS PRODUCTO TERMINADO 5846
CINTAS 725
---CONSULTA 3
NOMBRE EJECUTANDO_CANTIDAD
ACCESORIOS EXTERNOS 269346
AMPOLLAS 23784
ANGEOS 4500
BOLSAS CONSUMIBLES 50000
BOLSAS PRODUCTO TERMINADO 409330
CINTAS 1892290
---CONSULTA 4
NOMBRE EJECUTANDO_$
ACCESORIOS EXTERNOS 816946
AMPOLLAS 0
ANGEOS 8993
BOLSAS CONSUMIBLES 13
BOLSAS PRODUCTO TERMINADO 8312
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 originalNOMBRE OC_CANTIDAD OC_EN_$
ACCESORIOS EXTERNOS 811301 108675
AMPOLLAS 0 23784
ANGEOS 11458 5000
BOLSAS CONSUMIBLES 13 50000
BOLSAS PRODUCTO TERMINADO 5846 396830
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.....