SQL组合统计怎样写

ansonpansoftware 2003-09-07 07:42:14
品名 工会 学生处 计机系 数学系 合计 库存

A4 4 2 0 0 6 12
A3 0 1 1 3 5 0
A2 2 2 3 0 7 2
大信封 0 0 0 0 0 3
档案袋
图纸

我想实现组合统计,这个语句怎样写.
现在我做到了:
A4 工会 4
A4 学生处 2
A3 学生处 1
A3 计机系 1
..................
.............
...全文
40 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ansonpansoftware 2003-09-08
  • 打赏
  • 举报
回复
pengdali(大力 V3.0)
按您的方法解决了问题,还有合计一项又如何做呢?我如何把这些代码变成一张视图,
因为我要出报表,生成一张视图才行呀
ansonpansoftware 2003-09-08
  • 打赏
  • 举报
回复
bmdm bm pmdm pm sl ..............
2001 院办 2001 扫把 9.0
2001 院办 1002 A3纸 9.0
2001 院办 1001 A4纸 3.0
2001 院办 1002 A3纸 3.0
2001 院办 1002 A3纸 3.0
2001 院办 1002 A3纸 9.0
2003 工会 2001 扫把 5.0
2003 工会 1003 A1纸 23.0
2003 工会 1003 A1纸 23.0
2004 后财处 1005 档案袋 234.0
2004 后财处 1002 A3纸 50.0
2004 后财处 1002 A3纸 50.0
2005 教务处 2001 扫把 9.0
2005 教务处 2001 扫把 9.0
2005 教务处 1002 A3纸 6.0
2006 学生处 1007 16K复印纸 5.0
2006 学生处 1007 16K复印纸 44.0

t_import(bmdm,bm,pmdm,pm,rq,cp,dw,gg,dj,sl)
(部门代码,部门,品名代码,品名,日期,厂牌,单位,规格,单价,数量)
现在只有这张表我怎么实现以上的组合统计.是不是还要建多一张表呢?哥们
pengdali 2003-09-08
  • 打赏
  • 举报
回复
列1 列2 列3
A4 工会 4
A4 学生处 2
A3 学生处 1
A3 计机系 1



declare @sql varchar(8000)
set @sql = 'select 列1'
select @sql = @sql + ',sum(case 列2 when '''+列2+''' then 列3 else 0 end) ['+列2+']'
from (select distinct 列2 from 有一表) as a
select @sql = @sql+' from 你的表 group by 列1'

exec(@sql)
go
ansonpansoftware 2003-09-08
  • 打赏
  • 举报
回复
v_import
(bmdm,bm,pmdm,pm,rq,cp,gg,dw,sl)
yujohny 2003-09-08
  • 打赏
  • 举报
回复
select 品名,'工会' AS 部门,
SUM(CASE ISNULL(工会,0) WHEN 0 THEN 0 ELSE 工会 END) AS 数量
into #temptable from 表
group by 品名,工会

INSERT #temptable
select 品名,'学生处',
SUM(CASE ISNULL(学生处,0) WHEN 0 THEN 0 ELSE 学生处 END) AS 数量
into #temptable from 表
group by 品名,学生处

INSERT #temptable
select 品名,'计机系',
SUM(CASE ISNULL(计机系,0) WHEN 0 THEN 0 ELSE 计机系 END) AS 数量
into #temptable from 表
group by 品名,计机系

select 品名,'数学系',
SUM(CASE ISNULL(数学系,0) WHEN 0 THEN 0 ELSE 数学系 END) AS 数量
into #temptable from 表
group by 品名,数学系

DELETE #temptable where 数量 = 0

select * from #temptable
yujohny 2003-09-08
  • 打赏
  • 举报
回复
错了,错了,不好意思,等改好了先
yujohny 2003-09-08
  • 打赏
  • 举报
回复
select 品名,工会,SUM(CASE ISNULL(工会,0) WHEN 0 THEN 0 ELSE 工会 END) AS 数量
into #temptable from 表
group by 品名,工会

DELETE #temptable where 数量 = 0

select * from #temptable

happy_0325 2003-09-08
  • 打赏
  • 举报
回复
select pm,bm,sum(sl) from t_importgroup by pm,bm
ansonpansoftware 2003-09-08
  • 打赏
  • 举报
回复
create procedure p_export

@rq varchar(10)

as

declare @sql varchar(8000)

set @sql = 'select pm'

select @sql = @sql + ',sum(case bmdm when '''+bmdm+''' then sl else 0 end) ['+bmdm+']'

from (select distinct code bmdm from t_dictionary where type='BM' and code like '2%') as a

select @sql = @sql+',sum(sl) heji into ##t_temp from t_export where datepart(mm,rq)='''+@rq+''' group by pm '

exec(@sql)

go

select * from ##t_temp

go

drop table ##t_temp
zarge 2003-09-07
  • 打赏
  • 举报
回复
你的表结构是什么,你想得到什么结果?

34,874

社区成员

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

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