我有以下结果集:
输入|方法|金额
Type1现金金额
Type1检查金额
Type2现金金额
Type2检查金额
Type3现金金额
Type3检查金额
我希望看起来像这样:
输入|现金|检查
Type1金额
Type2金额
Type3金额
如何在T-SQL(2005语法确定)中实现此目的?我需要按类型(1,2,3 ......)
进行转动答案 0 :(得分:0)
这是对PIVOT的尝试:
select *
from YourTable
PIVOT (sum(amount) FOR Method in (Cash,Check)) as Y
鉴于它只有两列,可以尝试使用连接:
select
type
, cash = a.amount
, check = b.amount
from yourtable a
full join yourtable b on a.type = b.type
where a.method = 'cash' or b.method = 'Check'
答案 1 :(得分:0)
或者更好:
select
Type
, Cash = sum(case when Method = 'Cash' then Amount end)
, Check = sum(case when Method = 'Check' then Amount end)
from yourtable
group by
Type
如果合适,将ELSE 0添加到CASE语句中。
此表单比PIVOT运算符更灵活,不需要FULL JOIN。只是直接聚合。