行变列

wqvbjhc 2010-10-28 05:22:37
OWENER_ID COMMODITY_ID STATUS
飞扬电脑城 E5300 1
飞扬电脑城 E5300 2
飞扬电脑城 E5300 2
飞扬电脑城 E5300 1
飞扬电脑城 E5300 1
飞扬电脑城 E5300 1
statue 只有 1 跟 2

想要得到下面的一个视图,如何写sql语句啊
OWENER_ID COMMODITY_ID STATUS1 STATUS2
飞扬电脑城 E5300 4 2
...全文
79 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wqvbjhc 2010-10-28
  • 打赏
  • 举报
回复
SQL就是高手云集,回答问题真快。谢谢
SQLCenter 2010-10-28
  • 打赏
  • 举报
回复
--> 测试数据:#
if object_id('tempdb.dbo.#') is not null drop table #
create table #(OWENER_ID varchar(10), COMMODITY_ID varchar(8), STATUS int)
insert into #
select '飞扬电脑城', 'E5300', 1 union all
select '飞扬电脑城', 'E5300', 2 union all
select '飞扬电脑城', 'E5300', 2 union all
select '飞扬电脑城', 'E5300', 1 union all
select '飞扬电脑城', 'E5300', 1 union all
select '飞扬电脑城', 'E5300', 1

select OWENER_ID, COMMODITY_ID,
STATUS1 = sum(case STATUS when 1 then 1 else 0 end),
STATUS2 = sum(case STATUS when 2 then 1 else 0 end)
from # group by OWENER_ID, COMMODITY_ID

/*
OWENER_ID COMMODITY_ID STATUS1 STATUS2
---------- ------------ ----------- -----------
飞扬电脑城 E5300 4 2
*/

22,300

社区成员

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

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