select 货号 ,max(case when 事务类型=零售出库 then 数量 else 0 end) as col1
,max(case when 事务类型=零售出库 then 金额 else 0 end) as col1
......
from yourtable group by 货号
,max(case when 事务类型=零售出库 then 金额 else 0 end) as col1
......
from yourtable group by 货号
货号,
数量1 = MIN(CASE WHEN 事务类型 = '零售出库' THEN 数量 ELSE 0 END),
金额1 = MIN(CASE WHEN 事务类型 = '零售出库' THEN 金额 ELSE 0 END),
数量2 = MIN(CASE WHEN 事务类型 = '调拨出库' THEN 数量 ELSE 0 END),
金额2 = MIN(CASE WHEN 事务类型 = '调拨出库' THEN 金额 ELSE 0 END),
数量3 = MIN(CASE WHEN 事务类型 = '赊销出库' THEN 数量 ELSE 0 END),
金额3 = MIN(CASE WHEN 事务类型 = '赊销出库' THEN 金额 ELSE 0 END),
数量4 = MIN(CASE WHEN 事务类型 = '盘亏出库' THEN 数量 ELSE 0 END),
金额4 = MIN(CASE WHEN 事务类型 = '盘亏出库' THEN 金额 ELSE 0 END)
FROM T
GROUP BY 货号
SELECT
货号,
SUM(CASE WHEN 事务类型 = '零售出库' THEN 数量 ELSE 0 END)AS 零售出库数量,
SUM(CASE WHEN 事务类型 = '零售出库' THEN 金额 ELSE 0 END)AS 零售出库金额,
SUM(CASE WHEN 事务类型 = '调拨出库' THEN 数量 ELSE 0 END)AS 调拨出库数量,
SUM(CASE WHEN 事务类型 = '调拨出库' THEN 金额 ELSE 0 END)AS 调拨出库金额,
SUM(CASE WHEN 事务类型 = '赊销出库' THEN 数量 ELSE 0 END)AS 赊销出库数量,
SUM(CASE WHEN 事务类型 = '赊销出库' THEN 金额 ELSE 0 END)AS 赊销出库金额,
SUM(CASE WHEN 事务类型 = '盘亏出库' THEN 数量 ELSE 0 END)AS 盘亏出库数量,
SUM(CASE WHEN 事务类型 = '盘亏出库' THEN 金额 ELSE 0 END)AS 盘亏出库金额
FROM T
GROUP BY 货号
货号,
SUM(CASE WHEN 事务类型 = '零售出库' THEN 数量 ELSE 0 END)AS 零售出库数量,
SUM(CASE WHEN 事务类型 = '零售出库' THEN 金额 ELSE 0 END)AS 零售出库金额,
SUM(CASE WHEN 事务类型 = '调拨出库' THEN 数量 ELSE 0 END)AS 调拨出库数量,
SUM(CASE WHEN 事务类型 = '调拨出库' THEN 金额 ELSE 0 END)AS 调拨出库金额,
SUM(CASE WHEN 事务类型 = '赊销出库' THEN 数量 ELSE 0 END)AS 赊销出库数量,
SUM(CASE WHEN 事务类型 = '赊销出库' THEN 金额 ELSE 0 END)AS 赊销出库金额,
SUM(CASE WHEN 事务类型 = '盘亏出库' THEN 数量 ELSE 0 END)AS 盘亏出库数量,
SUM(CASE WHEN 事务类型 = '盘亏出库' THEN 金额 ELSE 0 END)AS 盘亏出库金额
FROM
(select
'A137-2' as 货号 , '零售出库' as 事务类型 , 1 as 数量 , 10 as 单价 , 10 as 金额 union all
select 'A137-2' ,'调拨出库' , 3 , 15 , 45
union all select 'A137-2' ,'赊销出库' , 5 , 18 , 90
union all select 'A137-2' ,'盘亏出库' , 1 , 18 , 18
union all select 'A137-3' ,'零售出库' , 3 , 10 , 30
union all select 'A137-3' , '调拨出库' , 3 , 10 , 30
union all select 'A137-3' , '赊销出库' , 5 , 18 , 90
union all select 'A137-3', '盘亏出库' , 1, 18 ,18)T
GROUP BY 货号结果
货号 零售出库数量 零售出库金额 调拨出库数量 调拨出库金额 赊销出库数量 赊销出库金额 盘亏出库数量 盘亏出库金额
------ ----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
A137-2 1 10 3 45 5 90 1 18
A137-3 3 30 3 30 5 90 1 18(2 row(s) affected)