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

cnbercom 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
...全文
56 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
回复
cnbercom 2015-09-23
或者直接算出来总计是多少也可以。困惑中,望指点,谢谢
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-09-23 07:56
社区公告
暂无公告