读书人

这个条件如何写,迷糊

发布时间: 2012-09-14 23:00:49 作者: rapoo

这个条件怎么写,迷糊
总积分总兑换积分本月积分上期剩余当前可用积分
3300.00002390.0000700.0000910.00001610.0000
9600.00001620.00002100.00007980.000010080.0000
7100.0000NULL1400.00007100.00007100.0000

最后一条数据的当前可用积分应该是 8500才正确,前面的两条是正确的.

我的语句如下:

select
总积分,总兑换积分,本月积分,isnull (总积分,0)-ISNULL(总兑换积分,0) 上期剩余,

case when ISNULL (总兑换积分,0) = '0' then isnull (总积分,0)-ISNULL(总兑换积分,0)
else isnull (总积分,0)-ISNULL(总兑换积分,0) +ISNULL (本月积分,0) end 当前可用积分
from tb



[解决办法]
LZ自问自答啊,呵呵
[解决办法]

SQL code
select   总积分,总兑换积分,本月积分,isnull (总积分,0)-ISNULL(总兑换积分,0) as 上期剩余,case  when 总兑换积分= '0' then isnull (总积分,0)+ISNULL (本月积分,0)      else          isnull (总积分,0)-ISNULL(总兑换积分,0) +ISNULL (本月积分,0) end as当前可用积分from tb
[解决办法]
楼主的判断逻辑有误,这里:
SQL code
case when ISNULL (总兑换积分,0) = '0' then isnull (总积分,0)-ISNULL(总兑换积分,0)else isnull (总积分,0)-ISNULL(总兑换积分,0) +ISNULL (本月积分,0) end 当前可用积分
[解决办法]
SQL code
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'tba')BEGIN    DROP TABLE tbaENDGOCREATE TABLE tba(    总积分 DECIMAL(10,4),    总兑换积分 DECIMAL(10,4),    本月积分 DECIMAL(10,4))GOINSERT INTO tbaSELECT 3300.0000,    2390.0000,    700.0000 UNIONSELECT 9600.0000,    1620.0000,    2100.0000 UNIONSELECT 7100.0000,    NULL,    1400.0000GOSELECT 总积分,总兑换积分,本月积分,ISNULL(总积分,0) - ISNULL(总兑换积分,0) AS 上期剩余,ISNULL(总积分,0) - ISNULL(总兑换积分,0) + ISNULL(本月积分,0) AS 当前可用积分FROM tba总积分    总兑换积分    本月积分    上期剩余    当前可用积分3300.0000    2390.0000    700.0000    910.0000    1610.00007100.0000    NULL    1400.0000    7100.0000    8500.00009600.0000    1620.0000    2100.0000    7980.0000    10080.0000 

读书人网 >SQL Server

热点推荐