这样的sql语句该如何写? SELECT 发货人,SUM(件数),SUM(现金),SUM(上付),SUM(月结),SUM(欠款),SUM( 运费 ) FROM ( 你的查询) AS AGROUP BY 发货人 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以先把你的查询放到一张临时表#中SELECT 发货人,件数=SUM(件数),现金=SUM(现金),上付=SUM(上付),月结=SUM(月结),欠款=SUM(欠款),运费=SUM(运费)FROM #GROUP BY 发货人 if object_id('tb') is not null drop table tbgocreate table tb([交易单号] varchar(10),[发货人] varchar(10),[件数] int,[现金] int,[上付] int,[月结] int,[欠款] int,[运费] int,[结算方式] varchar(10))insert tb select 90412001,'A',1,10,0,0,0,10,'现金'insert tb select 90412001,'A',2,20,0,0,0,20,'现金'insert tb select 90412002,'B',3,0,10,0,0,10,'上付'insert tb select 90412003,'B',5,0,0,10,0,10,'月结'insert tb select 90412004,'C',3,0,0,0,50,50,'欠款'go--select * from tbselect 发货人,sum(件数) 件数,sum(现金) 现金,sum(上付) 上付,sum(月结) 月结,sum(欠款) 欠款,sum(运费) 运费from tb group by 发货人/*发货人 件数 现金 上付 月结 欠款 运费---------- ----------- ----------- ----------- ----------- ----------- -----------A 3 30 0 0 0 30B 8 0 10 10 0 20C 3 0 0 0 50 50(3 行受影响)*/ select 发货人,sum(件数) 件数,sum(现金) 现金,sum(上付) 上付,sum(月结) 月结,sum(欠款) 欠款,sum(运费) 运费from (select * from a join b on a.id=b.id) tb group by 发货人 SELECT 交易单号,SUM(ISNULL(件数 ,0)) OVER (PARTITION BY 发货人) 件数,SUM(ISNULL(现金 ,0)) OVER (PARTITION BY 发货人) 现金,SUM(ISNULL(上付 ,0)) OVER (PARTITION BY 发货人) 上付,SUM(ISNULL(月结 ,0)) OVER (PARTITION BY 发货人) 月结,SUM(ISNULL(欠款 ,0)) OVER (PARTITION BY 发货人) 欠款, SUM(ISNULL(运费 ,0)) OVER (PARTITION BY 发货人) 运费 FROM @Taba/*交易单号 件数 现金 上付 月结 欠款 运费------ ----------- ----- ---- ---- ---- ----090412001 3 30.00 0.00 0.00 0.00 30.00090412001 3 30.00 0.00 0.00 0.00 30.00090412002 8 0.00 10.00 10.00 0.00 20.00090412003 8 0.00 10.00 10.00 0.00 20.00090412004 3 0.00 0.00 0.00 */ 求SQL语句-匹配查询 求每天的收入与支出 求助:在批处理中如何操作sql server数据库? sql查询数据权重问题,请高手进来(高分求助) 为什么我在控制台的master数据库中就看不到syslogins系统表呢? 2个sql语句如何连接(在线等) SQLSERVER2000 的一些表插入时报7391错误 一个字段组合的问题 一个我感觉比较复杂的问题 SQL SERVER中的识别字段的当前值存放在哪?当我删空记录时,它并未重新从1开始,而是从上次的地方继续。 企业管理器问题 SQL2005建立托管存储过程的问题。
可以先把你的查询放到一张临时表#中
SELECT 发货人,件数=SUM(件数),现金=SUM(现金),上付=SUM(上付),月结=SUM(月结),欠款=SUM(欠款),运费=SUM(运费)
FROM #
GROUP BY 发货人
if object_id('tb') is not null
drop table tb
go
create table tb([交易单号] varchar(10),[发货人] varchar(10),[件数] int,[现金] int,[上付] int,[月结] int,[欠款] int,[运费] int,[结算方式] varchar(10))
insert tb select 90412001,'A',1,10,0,0,0,10,'现金'
insert tb select 90412001,'A',2,20,0,0,0,20,'现金'
insert tb select 90412002,'B',3,0,10,0,0,10,'上付'
insert tb select 90412003,'B',5,0,0,10,0,10,'月结'
insert tb select 90412004,'C',3,0,0,0,50,50,'欠款'
go--select * from tbselect 发货人,sum(件数) 件数,sum(现金) 现金,sum(上付) 上付,sum(月结) 月结,sum(欠款) 欠款,sum(运费) 运费
from tb
group by 发货人
/*
发货人 件数 现金 上付 月结 欠款 运费
---------- ----------- ----------- ----------- ----------- ----------- -----------
A 3 30 0 0 0 30
B 8 0 10 10 0 20
C 3 0 0 0 50 50(3 行受影响)
*/
from (select * from a join b on a.id=b.id) tb
group by 发货人
SELECT 交易单号,SUM(ISNULL(件数 ,0)) OVER (PARTITION BY 发货人) 件数,
SUM(ISNULL(现金 ,0)) OVER (PARTITION BY 发货人) 现金,
SUM(ISNULL(上付 ,0)) OVER (PARTITION BY 发货人) 上付,
SUM(ISNULL(月结 ,0)) OVER (PARTITION BY 发货人) 月结,
SUM(ISNULL(欠款 ,0)) OVER (PARTITION BY 发货人) 欠款,
SUM(ISNULL(运费 ,0)) OVER (PARTITION BY 发货人) 运费
FROM @Taba/*
交易单号 件数 现金 上付 月结 欠款 运费
------ ----------- ----- ---- ---- ---- ----
090412001 3 30.00 0.00 0.00 0.00 30.00
090412001 3 30.00 0.00 0.00 0.00 30.00
090412002 8 0.00 10.00 10.00 0.00 20.00
090412003 8 0.00 10.00 10.00 0.00 20.00
090412004 3 0.00 0.00 0.00
*/