数据库计算差异

王晓彤 2012-12-05 10:06:42

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
*/

...全文
113 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
playwarcraft 2012-12-05
  • 打赏
  • 举报
回复

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
快溜 2012-12-05
  • 打赏
  • 举报
回复
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

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧