34,590
社区成员
发帖
与我相关
我的任务
分享
use Tempdb
go
--> --> 中国风(Roy)生成測試數據
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[商品名称] nvarchar(23),[机器ID] nvarchar(22))
Insert #T
select 1,N'商品1',N'A2' union all
select 2,N'商品2',N'A1' union all
select 3,N'商品1',N'A1' union all
select 4,N'商品3',N'A3' union all
select 5,N'商品2',N'A2'
Go
SELECT [商品名称] ,
COUNT(*) AS 数量 ,
SUM(CASE WHEN [机器ID] = 'A1' THEN 1
ELSE 0
END) AS A1 ,
SUM(CASE WHEN [机器ID] = 'A2' THEN 1
ELSE 0
END) AS A2 ,
SUM(CASE WHEN [机器ID] = 'A3' THEN 1
ELSE 0
END) AS A3 ,
SUM(CASE WHEN [机器ID] = 'A4' THEN 1
ELSE 0
END) AS A4 ,
SUM(CASE WHEN [机器ID] = 'A5' THEN 1
ELSE 0
END) AS A5
FROM #T
GROUP BY [商品名称]
ORDER BY 数量 DESC;
use Tempdb
go
--> --> 中国风(Roy)生成測試數據
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[商品名称] nvarchar(23),[机器ID] nvarchar(22))
Insert #T
select 1,N'商品1',N'A2' union all
select 2,N'商品2',N'A1' union all
select 3,N'商品1',N'A1' union all
select 4,N'商品3',N'A3' union all
select 5,N'商品2',N'A2'
Go
SELECT [商品名称] ,
COUNT(*) AS 数量 ,
SUM(CASE WHEN [机器ID] = 'A1' THEN 1
ELSE 0
END) AS A1 ,
SUM(CASE WHEN [机器ID] = 'A2' THEN 1
ELSE 0
END) AS A2 ,
SUM(CASE WHEN [机器ID] = 'A3' THEN 1
ELSE 0
END) AS A3 ,
SUM(CASE WHEN [机器ID] = 'A4' THEN 1
ELSE 0
END) AS A4 ,
SUM(CASE WHEN [机器ID] = 'A5' THEN 1
ELSE 0
END) AS A5
FROM #T
GROUP BY [商品名称]
ORDER BY 数量 DESC;
/*
商品名称 数量 A1 A2 A3 A4 A5
商品1 2 1 1 0 0 0
商品2 2 1 1 0 0 0
商品3 1 0 0 1 0 0
*/