19/12/2007, 19:51
|
| | Fecha de Ingreso: diciembre-2007
Mensajes: 6
Antigüedad: 17 años, 1 mes Puntos: 0 | |
Re: Problema con SUM y HAVING Hola RataASP, probe los scripts que pones, no se que estes usando pero yo los probe en SQLServer, y funcionan bien, excepto por la funcion "isnull" que aqui se maneja asi:
isnull(campo,valordereemplazo), tambien modifique "Having" y lo traslade al "where"
porque no puedes hacer referencia al campo "saldo", siendo que apenas lo estas formando en la consulta, amenos que hicieras una subconsulta o una vista y asi si funcionaria.
SELECT
ctacte.anoperiodo,
ctacte.mesperiodo,
socios.idsocio,
socios.apellido,
socios.nombre,
SUM(CASE WHEN IsNull(ctacte.debe,0)=0 THEN 0 ELSE ctacte.debe END) AS totaldebe,
SUM(CASE WHEN IsNull(ctacte.haber,0)=0 THEN 0 ELSE ctacte.haber END) AS totalhaber,
(SUM(CASE WHEN IsNull(ctacte.haber,0)=0 THEN 0 ELSE ctacte.haber END) - SUM(CASE WHEN IsNull(ctacte.debe,0)=0 THEN 0 ELSE ctacte.debe END)) AS saldo
FROM
ctacte RIGHT OUTER JOIN socios ON (ctacte.idsocio = socios.idsocio)
WHERE
ctacte.mesperiodo LIKE @varMesPeriodo AND ctacte.anoperiodo LIKE @varanoperiodo
and ctacte.haber-ctacte.debe < 0
GROUP BY
socios.idsocio,
socios.apellido,
socios.nombre,
ctacte.anoperiodo,
ctacte.mesperiodo
--HAVING
--saldo < 0
ORDER BY
apellido, nombre
recorsed2
SELECT
SUM(CASE WHEN IsNull(ctacte.debe,0)=0 THEN 0 ELSE ctacte.debe END) AS totaldebe,
SUM(CASE WHEN IsNull(ctacte.haber,0)=0 THEN 0 ELSE ctacte.haber END) AS totalhaber,
(SUM(CASE WHEN IsNull(ctacte.haber,0)=0 THEN 0 ELSE ctacte.haber END) - SUM(CASE WHEN IsNull(ctacte.debe,0)=0 THEN 0 ELSE ctacte.debe END)) AS saldo
FROM
ctacte RIGHT OUTER JOIN socios ON (ctacte.idsocio = socios.idsocio)
WHERE
ctacte.mesperiodo LIKE @varMesPeriodo AND ctacte.anoperiodo LIKE @varAnoPeriodo
and ctacte.haber-ctacte.debe < 0
--HAVING
--saldo < 0 |