日期:2014-05-18 浏览次数:20467 次
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
------解决方案--------------------
楼主的判断逻辑有误,这里:
case when ISNULL (总兑换积分,0) = '0' then isnull (总积分,0)-ISNULL(总兑换积分,0) else isnull (总积分,0)-ISNULL(总兑换积分,0) +ISNULL (本月积分,0) end 当前可用积分
------解决方案--------------------
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'tba') BEGIN DROP TABLE tba END GO CREATE TABLE tba ( 总积分 DECIMAL(10,4), 总兑换积分 DECIMAL(10,4), 本月积分 DECIMAL(10,4) ) GO INSERT INTO tba SELECT 3300.0000, 2390.0000, 700.0000 UNION SELECT 9600.0000, 1620.0000, 2100.0000 UNION SELECT 7100.0000, NULL, 1400.0000 GO SELECT 总积分,总兑换积分,本月积分,ISNULL(总积分,0) - ISNULL(总兑换积分,0) AS 上期剩余,ISNULL(总积分,0) - ISNULL(总兑换积分,0) + ISNULL(本月积分,0) AS 当前可用积分 FROM tba 总积分 总兑换积分 本月积分 上期剩余 当前可用积分 3300.0000 2390.0000 700.0000 910.0000 1610.0000 7100.0000 NULL 1400.0000 7100.0000 8500.0000 9600.0000 1620.0000 2100.0000 7980.0000 10080.0000