使用聚合函数能实现这样的查询结果吗?
时间:2011-11-09
来源:互联网
单号 出货日期 书号 书名 进货/退货数量
101001 2011-11-8 978751 语文 50
101001 2011-11-8 978752 数学 20
101001 2011-11-8 978753 英语 15
101002 2011-11-9 978751 语文 -8
101002 2011-11-9 978752 数学 -10
101003 2011-11-9 978751 语文 -5
像这样的数据有很多行,相同品种的进货、退货数量根据书号分别需聚合累加
能实现这样的查询结果吗?
书号 书名 进货 退货 实际发货 发货单号 退货单号
978751 语文 50 -13 37 101001 101002 101003
978752 数学 20 -10 10 101001 101002
978753 英语 15 0 15 101001
101001 2011-11-8 978751 语文 50
101001 2011-11-8 978752 数学 20
101001 2011-11-8 978753 英语 15
101002 2011-11-9 978751 语文 -8
101002 2011-11-9 978752 数学 -10
101003 2011-11-9 978751 语文 -5
像这样的数据有很多行,相同品种的进货、退货数量根据书号分别需聚合累加
能实现这样的查询结果吗?
书号 书名 进货 退货 实际发货 发货单号 退货单号
978751 语文 50 -13 37 101001 101002 101003
978752 数学 20 -10 10 101001 101002
978753 英语 15 0 15 101001
作者: smx_21cn 发布时间: 2011-11-09
SQL code
--> --> (Roy)生成測試數據 if not object_id('Tempdb..#T') is null drop table #T Go Create table #T([单号] nvarchar(10),[出货日期] Datetime,[书号] int,[书名] nvarchar(2),[进货/退货数量] int) Insert #T select '101001','2011-11-8',978751,N'语文',50 union all select '101001','2011-11-8',978752,N'数学',20 union all select '101001','2011-11-8',978753,N'英语',15 union all select '101002','2011-11-9',978751,N'语文',-8 union all select '101002','2011-11-9',978752,N'数学',-10 union all select '101003','2011-11-9',978751,N'语文',-5 Go Select [书号],[书名], [进货]=sum(case when [进货/退货数量]>0 then [进货/退货数量] else 0 end), [退货]=sum(case when [进货/退货数量]<0 then -[进货/退货数量] else 0 end), [实际发货]=sum([进货/退货数量]), [发货单号]=ltrim((select ' '+[单号] from #T where [书号]=a.[书号] and [进货/退货数量]>0 for xml path(''))), [退货单号]=isnull(ltrim((select ' '+[单号] from #T where [书号]=a.[书号] and [进货/退货数量]<0 for xml path(''))),'') from #T as a group by [书号],[书名] order by 1 /* 978751 语文 50 13 37 101001 101002 101003 978752 数学 20 10 10 101001 101002 978753 英语 15 0 15 101001 */
作者: roy_88 发布时间: 2011-11-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28