求行列转换的sql语句

deepmist 2011-04-18 05:42:34
源数据表:
---------------------
产品号 工序 合格品 不良品
1 工序1 10 1
1 工序2 5 2
1 工序3 8 5

---------------------

需要转换成的数据表:
-------------------------------
产品号 工序1合格品 工序1不良品 工序2合格品 工序2不良品 工序3合格品 工序3不良品
1 10 1 5 2 8 5
-------------------------------

请大家帮帮忙,谢谢~~
...全文
81 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
AcHerat 2011-04-18
  • 打赏
  • 举报
回复
动态你可以在 case when 里判断两个条件 from 后可以 from (select distinct 工序,'合格' as lna from tb union all select distinct 工序,'不合格' from tb) t

其他的都差不多了。
快溜 2011-04-18
  • 打赏
  • 举报
回复
select 产品号,max(case when 工序='工序1' then 合格品 end)[工序1合格品],
max(case when 工序='工序1' then 不良品 end)[工序1不良品],
max(case when 工序='工序2' then 合格品 end)[工序2合格品],
max(case when 工序='工序2' then 不良品 end)[工序2不良品],
max(case when 工序='工序3' then 合格品 end)[工序3合格品],
max(case when 工序='工序4' then 不良品 end)[工序3不良品]
from tb group by 产品号

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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