sql - validar - ¿Cómo separar los números positivos y negativos en sus propias columnas?
sumar numeros positivos y negativos en excel (4)
Tengo una tabla con las siguientes columnas y datos:
activity_dt | activity_amt
2009-01-01 | -500
2009-01-01 | 750
¿Puedo escribir una consulta que observe el signo de activity_amt
y la coloque en la columna de créditos si es positiva, y la columna de débitos si es negativa? (Estoy usando Sybase)
activity_dt | debits | credits
2009-01-01 | -500 | 750
Encontré una nueva respuesta a este problema usando la función DECODE
. Espero que esto resulte útil para todos.
select activity_dt,
sum((DECODE(activity_amt /-ABS(activity_amt), 1, activity_amt, 0))) as credits,
sum((DECODE(activity_amt /-ABS(activity_amt), -1, activity_amt, 0))) as debits
from the_table
group by activity_dt
order by activity_dt;
No estoy seguro de la sintaxis exacta en Sybase, pero debería poder agrupar la fecha y resumir los valores positivos y negativos:
select
activity_dt,
sum(case when activity_amt < 0 then activity_amt else 0 end) as debits,
sum(case when activity_amt >= 0 then activity_amt else 0 end) as credits
from
theTable
group by
activity_dt
select (select JV_GroupsHead.GroupTitle
from JV_GroupsHead
whereJV_GroupsHead.Id=jv.GroupId) as ''GroupName''
,jv.Revenue
,jv.AccountNo
,jv.AccountNoTitle
,(case when jv.Revenue < 0 then jv.Revenue else 0 end) as ''debits''
,(case when jv.Revenue> 0 then jv.Revenue else 0 end) as ''credits''
from JVFunction1(''2010-07-08'',''2010-08-08'') as jv
select activity_dt,
sum(case when activity_amt < 0 then activity_amt else 0 end) as debits,
sum(case when activity_amt > 0 then activity_amt else 0 end) as credits
from the_table
group by activity_dt
order by activity_dt