一个mssql ,如何查询呢,请高手指点,谢谢

新博飞龙 2015-09-23 07:56:51


运费,标识,订单号
5,S,1001
5,S,1001
10,S,1002
10,S,1003
10,Y,1004
12,Y,1005
12,Y,1005
15,Y,1006

我想统计汇总,总共运费是多少钱,Y标识,同一订单号运费不累加。S标识 同一订单号运费 累加。
最后算出来的总金额是

Y标识:37(15+12+10),S标识:30(5+5+10+10)
=========================================================
查询结果如下:

总计,Y总计,S总计
67,37,30
...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_17482963 2015-09-23
  • 打赏
  • 举报
回复
with tb(运费,标识,订单号) as
(
select 5,'S',1001 union all
select 5,'S',1001 union all
select 10,'S',1002 union all
select 10,'S',1003 union all
select 10,'Y',1004 union all
select 12,'Y',1005 union all
select 12,'Y',1005 union all
select 15,'Y',1006
),
tb1 as
(
select *,ROW_NUMBER()over(PARTITION by 标识,订单号 order by getdate())rn from tb
)
select sum(case when 标识='S' then 运费 when 标识='Y' and rn=1 then 运费 end)'合计',
SUM(case when 标识='S' then 运费 end)'S合计',
SUM(case when 标识='Y' and rn=1 then 运费 end)'Y合计' from tb1
合计          S合计         Y合计
----------- ----------- -----------
67          30          37
新博飞龙 2015-09-23
  • 打赏
  • 举报
回复
或者直接算出来总计是多少也可以。困惑中,望指点,谢谢

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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