• 主页
  • 基础类
  • 应用实例
  • 新技术前沿

根据字段值分类汇总,急,现在感觉明显智商下降,求各位帮忙啊!

杀手悟道 IIVI Corporate 2005-03-25 09:51:19
数据库字段如下
生产日期 零件号 数量 属性
2005/1/1 a 100 Good
2005/2/2 a 130 scrap
2005/2/4 a 200 Good

现在想得到如下结果
零件 良品数 报废数
a 300 130

想了很长时间,实在不知道怎么做了
...全文
45 点赞 收藏 5
写回复
5 条回复
杀手悟道 2005年03月25日
谢谢两位,揭帖
回复 点赞
paoluo 2005年03月25日
再改


--建表
Drop table table1
Create table Table1
(生产日期 DateTime,
零件号 Nvarchar(10),
数量 Int,
属性 Nvarchar(10),
)
Insert table1 Values('2005/1/1','a',100,'Good')
Insert table1 Values('2005/2/2','a',130,'scrap')
Insert table1 Values('2005/2/4','a',200,'Good')

--测试
Select 零件号,SUM(Case 属性 When 'Good' Then 数量 Else 0 End ) As 良品数,SUM(Case 属性 When 'scrap' Then 数量 Else 0 End ) As 报废数 from table1 Group By 零件号

--删除表
Drop table table1

回复 点赞
jinjazz 2005年03月25日
--建立测试环境
Create Table 表(生产日期 varchar(10),零件号 varchar(10),数量 integer,属性 varchar(10))
--插入数据
insert into 表
select '2005/1/1','a','100','Good' union
select '2005/2/2','a','130','scrap' union
select '2005/2/4','a','200','Good'
--测试语句
select 零件号,Good=sum(case when 属性='Good' then 数量 end),
scrap=sum(case when 属性='scrap' then 数量 end)
from 表 group by 零件号

--删除测试环境
Drop Table 表

/*
零件号 Good scrap
---------- ----------- -----------
a 300 130

(所影响的行数为 1 行)
*/
回复 点赞
paoluo 2005年03月25日
错了,改一点

Select 零件号,SUM(数量) As 良品数,SUM(Case 属性 When 'scrap' Then 数量 Else 0 End ) As 报废数 from 表名 Group By 零件号

回复 点赞
paoluo 2005年03月25日
Select 零件号,SUM(数量) As 良品数,SUM(Case 属性 When scrap Then 数量 Else 0 End ) As 报废数 from 表名 Group By 零件号
回复 点赞
发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告