如何实现这种统计

hmily1688 2003-11-13 06:35:19
在Access中sql 语句为这样
TRANSFORM Sum(K.Number) SELECT W.ID,W.UserCode,W.Name,W.Sort,W.Unit FROM WareStock AS K,Ware AS W,Depot AS D WHERE K.WareID=W.ID and K.DepotID=D.ID GROUP BY W.ID,W.UserCode,W.Name,W.Sort,W.Unit IVOT D.Name
统计结果为下:
商品编号 商品名称 商品分类 单位 仓库1 仓库2
aaa bbb 商吕 部 10 12

也就是说把仓库分类横排,下面统计商品bbb的各自数量
谁能把上面的语句写成Sql 语句,我试着用with cube ,with rollup搞了半天也搞不定,请各位帮忙啊
...全文
65 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hmily1688 2003-12-05
  • 打赏
  • 举报
回复
结贴
hmily1688 2003-11-13
  • 打赏
  • 举报
回复
还是狂谢,
hmily1688 2003-11-13
  • 打赏
  • 举报
回复
在我改的别人的程序中说可以用with cube ,with rollup 来搞定,上面的注释写着
用with cube,rollup on select 条件就可以搞定,不知用with cube,with rollup能不能搞定啊我喜欢简单的写法,你的代码量太大了吧
txlicenhe 2003-11-13
  • 打赏
  • 举报
回复
eg1:
Create table test (name char(10),km char(10),cj int)
go
insert test values('张三','语文',80)
insert test values('张三','数学',86)
insert test values('张三','英语',75)
insert test values('李四','语文',78)
insert test values('李四','数学',85)
insert test values('李四','英语',78)

想变成

姓名 语文 数学 英语
张三 80 86 75
李四 78 85 78


declare @sql varchar(8000)
set @sql = 'select name'
select @sql = @sql + ',sum(case km when '''+km+''' then cj end) ['+km+']'
from (select distinct km from test) as a
select @sql = @sql+' from test group by name'
exec(@sql)

drop table test
txlicenhe 2003-11-13
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2440/2440306.xml?temp=.6941645
[交流]行列转换

34,872

社区成员

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

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