
Ayuda con Sum -case por favor
Publicado por trinidad (12 intervenciones) el 17/04/2015 00:15:09
Hola
Tengo la siguiente inquietud , no he logrado que mi código condicionar si la sumatoria del total del saldo de
los documentos por proveedores si es igual a 0 no los muestre , me pueden ayudar por favor
SELECT t4.baseref 'Documento ', T0.CARDCODE 'Proveedor',CASE
WHEN T3.DebHab = 'D' THEN (T1.Debit-T1.Credit-T3.ReconSum)
WHEN T3.DebHab = 'C' THEN (T1.Debit-T1.Credit+T3.ReconSum)
ELSE (T1.Debit-T1.Credit)
END 'Saldo'
FROM dbo.OCRD T0
INNER JOIN dbo.octg T5 ON T0.GroupNum = T5.GroupNum
INNER JOIN dbo.JDT1 T1 ON T1.ShortName = T0.CardCode
INNER JOIN dbo.OACT T2 ON T2.AcctCode = T1.Account
INNER JOIN dbo.OJDT T4 ON T4.TransId = T1.TransId
LEFT JOIN dbo.Opch Y1 ON Y1.TransId = T1.TransId
LEFT JOIN dbo.ORpc Y2 ON Y2.TransId = T1.TransId
LEFT JOIN dbo.OSLP Y3 ON Y3.SlpCode = Y1.SlpCode OR Y3.SlpCode = Y2.SlpCode
LEFT JOIN (SELECT X0.ShortName 'SN', X0.TransId 'TransId', SUM(X0.ReconSum)'ReconSum', X0.IsCredit 'DebHab', X0.TransRowId 'Linea'
FROM dbo.ITR1 X0
INNER JOIN dbo.OITR X1 ON X1.ReconNum = X0.ReconNum
WHERE X1.ReconDate <= current_timestamp AND X1.CancelAbs = ''
GROUP BY X0.ShortName, X0.TransId, X0.IsCredit, X0.TransRowId) T3 ON T3.TransId = T1.TransId AND T3.SN = T1.ShortName AND T3.Linea = T1.Line_ID
WHERE T0.CardType = 'S' AND T1.RefDate <= current_timestamp AND
(CASE
WHEN T3.DebHab = 'D' THEN (T1.Debit-T1.Credit-T3.ReconSum)
WHEN T3.DebHab = 'C' THEN (T1.Debit-T1.Credit+T3.ReconSum)
ELSE (T1.Debit-T1.Credit)
END) != '0' and
sUM ( CASE T3.DebHab
WHEN'D' THEN (T1.Debit-T1.Credit-T3.ReconSum)
WHEN 'C' THEN (T1.Debit-T1.Credit+T3.ReconSum)
ELSE (T1.Debit-T1.Credit)
END ) != '0'
Group by T0.cardcode , T1.DueDate,T3.DebHab,
T1.Credit,T1.Debit,T3.ReconSum
ORDER BY T0.CardCode
De antemano muchas gracias ,
Tengo la siguiente inquietud , no he logrado que mi código condicionar si la sumatoria del total del saldo de
los documentos por proveedores si es igual a 0 no los muestre , me pueden ayudar por favor
SELECT t4.baseref 'Documento ', T0.CARDCODE 'Proveedor',CASE
WHEN T3.DebHab = 'D' THEN (T1.Debit-T1.Credit-T3.ReconSum)
WHEN T3.DebHab = 'C' THEN (T1.Debit-T1.Credit+T3.ReconSum)
ELSE (T1.Debit-T1.Credit)
END 'Saldo'
FROM dbo.OCRD T0
INNER JOIN dbo.octg T5 ON T0.GroupNum = T5.GroupNum
INNER JOIN dbo.JDT1 T1 ON T1.ShortName = T0.CardCode
INNER JOIN dbo.OACT T2 ON T2.AcctCode = T1.Account
INNER JOIN dbo.OJDT T4 ON T4.TransId = T1.TransId
LEFT JOIN dbo.Opch Y1 ON Y1.TransId = T1.TransId
LEFT JOIN dbo.ORpc Y2 ON Y2.TransId = T1.TransId
LEFT JOIN dbo.OSLP Y3 ON Y3.SlpCode = Y1.SlpCode OR Y3.SlpCode = Y2.SlpCode
LEFT JOIN (SELECT X0.ShortName 'SN', X0.TransId 'TransId', SUM(X0.ReconSum)'ReconSum', X0.IsCredit 'DebHab', X0.TransRowId 'Linea'
FROM dbo.ITR1 X0
INNER JOIN dbo.OITR X1 ON X1.ReconNum = X0.ReconNum
WHERE X1.ReconDate <= current_timestamp AND X1.CancelAbs = ''
GROUP BY X0.ShortName, X0.TransId, X0.IsCredit, X0.TransRowId) T3 ON T3.TransId = T1.TransId AND T3.SN = T1.ShortName AND T3.Linea = T1.Line_ID
WHERE T0.CardType = 'S' AND T1.RefDate <= current_timestamp AND
(CASE
WHEN T3.DebHab = 'D' THEN (T1.Debit-T1.Credit-T3.ReconSum)
WHEN T3.DebHab = 'C' THEN (T1.Debit-T1.Credit+T3.ReconSum)
ELSE (T1.Debit-T1.Credit)
END) != '0' and
sUM ( CASE T3.DebHab
WHEN'D' THEN (T1.Debit-T1.Credit-T3.ReconSum)
WHEN 'C' THEN (T1.Debit-T1.Credit+T3.ReconSum)
ELSE (T1.Debit-T1.Credit)
END ) != '0'
Group by T0.cardcode , T1.DueDate,T3.DebHab,
T1.Credit,T1.Debit,T3.ReconSum
ORDER BY T0.CardCode
De antemano muchas gracias ,

Valora esta pregunta


0