首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

数据库计算差别

2012-12-29 
数据库计算差异DECLARE @table TABLE(id INT,date DATETIME,sale FLOAT)INSERT INTO @table SELECT 1,201

数据库计算差异


DECLARE @table TABLE
(
id INT,
date DATETIME,
sale FLOAT
)
INSERT INTO @table SELECT 1,'2012-12-01',0 UNION ALL
SELECT 2,'2012-12-02',10 UNION ALL
SELECT 3,'2012-12-03',0 UNION ALL
SELECT 4,'2012-12-04',100 UNION ALL
SELECT 5,'2012-12-05',0 UNION ALL
SELECT 6,'2012-12-06',1000

SELECT * FROM @table
WHERE DAY(date)%2=0

/*
   想要双号的累加,计算差异
   2号 就是金额10
   4号 就是2号加4号的金额110
   6号 就是2号加4号加6号的金额1110
*/


[解决办法]
select *,
       sale=(select sum(sale) from @table where DAY(date)%2=0 and id<=a.id) 
from (SELECT * FROM @table WHERE DAY(date)%2=0) a
[解决办法]

select id,date
,sale=(case when day(date)%2=1 then sale else (select sum(sale) from @table where day(date)%2=0 and date<=A.date) end ) 
from @table as A

热点排行