求一Sql语句

ttg520 2007-07-28 09:40:19
id transAmt transDate payToOffer backToOrder
1 20.3200 2007-02-03 00:00:00.000 0 0
2 23.3200 2007-03-03 00:00:00.000 1 0
3 100.3200 2007-03-03 00:00:00.000 0 0
4 200.3200 2007-05-03 00:00:00.000 0 0
5 220.3200 2007-04-03 00:00:00.000 1 0
6 10.3200 2007-05-03 00:00:00.000 0 0
7 20.3200 2007-05-03 00:00:00.000 0 0
8 20.3200 2007-06-03 00:00:00.000 0 1
9 20.3200 2007-07-03 00:00:00.000 0 0
10 20.3200 2007-07-03 00:00:00.000 0 0
11 20.3200 2007-08-03 00:00:00.000 0 1
12 20.3200 2007-09-03 00:00:00.000 0 0
13 20.3200 2007-10-03 00:00:00.000 0 0
14 20.3200 2007-10-03 00:00:00.000 0 1
15 20.3200 2007-12-03 00:00:00.000 0 0
16 20.3200 2007-12-03 00:00:00.000 0 0
17 20.3200 2007-12-03 00:00:00.000 0 1
18 20.3200 2007-12-03 00:00:00.000 1 0
我想根据每季度来对transAmt求和,再根据payToOffer=1 or backToOrder=1表示金额已清分了clearAmt, unclearAmt根据 payToOffer=1 and backToOrder=1 最后达到如下效果
puarter clearAmt unclearAmt
1 23.3200 123.64
2 220.3200 251.28
3 20.32 60.96
4 60.96 40.64
...全文
121 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttg520 2007-07-28
  • 打赏
  • 举报
回复
搞定 谢谢
ttg520 2007-07-28
  • 打赏
  • 举报
回复
这里写错了 unclearAmt根据 payToOffer=0 and backToOrder=0
chuifengde 2007-07-28
  • 打赏
  • 举报
回复
不知道你结果如何得到的
select
a=datepart(qq,transDate),
b=sum(case when paytooffer=1 or backtoorder =1 then transamt end),
c=sum(case when paytooffer=1 and backtoorder =1 then transamt end)
from [Table] group by datepart(qq,transDate)
昵称被占用了 2007-07-28
  • 打赏
  • 举报
回复
结果好像贴错了点

select datepart(quarter,transDate) as puarter,
sum(case when payToOffer=1 or backToOrder=1 then transAmt else 0 end) as clearAmt,
sum(case when payToOffer=1 or backToOrder=1 then 0 else transAmt end) as unclearAmt
from tablename
group by datepart(quarter,transDate)

34,590

社区成员

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

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