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

myboor 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

想了很长时间,实在不知道怎么做了
...全文
82 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
myboor 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 零件号

34,837

社区成员

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

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