PROBLEMAS CON GROUP BY
Publicado por Liliana (5 intervenciones) el 08/10/2008 21:45:30
Hola,
Ojala alguien pueda ayudarme... necesito calcular unos totales utilizando la instruccion GROUP BY
Si por ejemplo tengo esto:
Cuenta ImporteDerechos ImporteImpuestos
4 20.3 1.00
3 563.00 22.50
4 26.10 5.00
Mi intención con la consulta (que me marca error) es que arroje la sumatoria de ImporteDerechos e ImporteImpuestos agrupando por Cuenta, el resultado sería:
Cuenta ImporteDerechos ImporteImpuestos
4 46.40 6.00
3 563.00 22.50
Mi consulta es asi:
SELECT EC.iCuenta AS Cuenta, ImporteDerechos = (CASE WHEN A.smlLActividad > 100
THEN SUM(A.mnyImporteDerecho) ELSE 0 END), ImporteImpuestos = (CASE WHEN
A.smlLActividad > 100 THEN SUM(A.mnyImporteArt) ELSE 0 END)
FROM TB_ActividadesLicencia A, TB_EnlaceCalificacion EC, TB_Licencia L
WHERE A.iCodLicencia = @iCodLicencia AND A.iCodLicencia = L.iCodLicencia AND
A.iRelacion = EC.iRelacion
pero me marca error:
Column 'A.smlLActividad' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
He pensado en utilizar una tabla temporal pero quizá alguien sepa otra alternativa mejor..... alguien sabe cómo????
Gracias.
Ojala alguien pueda ayudarme... necesito calcular unos totales utilizando la instruccion GROUP BY
Si por ejemplo tengo esto:
Cuenta ImporteDerechos ImporteImpuestos
4 20.3 1.00
3 563.00 22.50
4 26.10 5.00
Mi intención con la consulta (que me marca error) es que arroje la sumatoria de ImporteDerechos e ImporteImpuestos agrupando por Cuenta, el resultado sería:
Cuenta ImporteDerechos ImporteImpuestos
4 46.40 6.00
3 563.00 22.50
Mi consulta es asi:
SELECT EC.iCuenta AS Cuenta, ImporteDerechos = (CASE WHEN A.smlLActividad > 100
THEN SUM(A.mnyImporteDerecho) ELSE 0 END), ImporteImpuestos = (CASE WHEN
A.smlLActividad > 100 THEN SUM(A.mnyImporteArt) ELSE 0 END)
FROM TB_ActividadesLicencia A, TB_EnlaceCalificacion EC, TB_Licencia L
WHERE A.iCodLicencia = @iCodLicencia AND A.iCodLicencia = L.iCodLicencia AND
A.iRelacion = EC.iRelacion
pero me marca error:
Column 'A.smlLActividad' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
He pensado en utilizar una tabla temporal pero quizá alguien sepa otra alternativa mejor..... alguien sabe cómo????
Gracias.
Valora esta pregunta


0