我试图根据查询创建数据透视表 当我选择select * from它可以正常工作,但是当我尝试选择下面的代码中所示的列时,它给我错误错误的列名
select sr,PayDescr,PayMonAmt from (select sr= case when rtrim(Ctname.PayCat)='GS' then 1
when rtrim(Ctname.PayCat)='BS' then 2
when rtrim(Ctname.PayCat)='HA' then 3
when rtrim(Ctname.PayCat)='TA' then 4
when rtrim(Ctname.PayCat)='FA' then 5
else 6 end
, PayDescr = rtrim(Ctname.Descr),SUM(PayMonAmt) as PayMonAmt from
maEmpPay mn
outer apply(
select Descr,PayCat from maPayCat pc
where mn.PayCat = pc.PayCat
)Ctname
where EmpID = mn.EmpID group by Ctname.Descr, Ctname.PayCat) pv
pivot
(
sum (PayMonAmt) for PayDescr IN ([Basic Salary],[Food Allowance],[Tuition
Allowance],[Transportation Allowance])
) AS e
工作代码
select * from ( select sr= case when rtrim(Ctname.PayCat)='GS' then 1
when rtrim(Ctname.PayCat)='BS' then 2
when rtrim(Ctname.PayCat)='HA' then 3
when rtrim(Ctname.PayCat)='TA' then 4
when rtrim(Ctname.PayCat)='FA' then 5
else 6 end
, PayDescr = rtrim(Ctname.Descr),SUM(PayMonAmt) as PayMonAmt from
maEmpPay mn
outer apply(
select Descr,PayCat from maPayCat pc
where mn.PayCat = pc.PayCat
)Ctname where EmpID = mn.EmpID group by Ctname.Descr, Ctname.PayCat
) pv
pivot
(
sum (PayMonAmt) for PayDescr IN ([Basic Salary],[Food Allowance],[Tuition
Allowance],[Transportation Allowance])
) AS e
答案 0 :(得分:1)
解决方案
SELECT
sr,
[Basic Salary],
[Food Allowance],
[Tuition Allowance],
[Transportation Allowance] FROM (
SELECT
sr = CASE
when rtrim(Ctname.PayCat)='GS' then 1
when rtrim(Ctname.PayCat)='BS' then 2
when rtrim(Ctname.PayCat)='HA' then 3
when rtrim(Ctname.PayCat)='TA' then 4
when rtrim(Ctname.PayCat)='FA' then 5
else 6
END,
PayDescr = rtrim(Ctname.Descr),
SUM(PayMonAmt) as PayMonAmt
FROM
maEmpPay As mn
OUTER APPLY
(
SELECT Descr, PayCat
FROM maPayCat pc
WHERE mn.PayCat = pc.PayCat
) As Ctname
WHERE
EmpID = mn.EmpID
GROUP BY
Ctname.Descr,
Ctname.PayCat) PIVOT(
SUM(PayMonAmt) FOR PayDescr IN
(
[Basic Salary],
[Food Allowance],
[Tuition Allowance],
[Transportation Allowance]
)) As e
答案 1 :(得分:0)
由于它是数据透视查询,因此删除PayMonAmt并添加[基本工资],[食品津贴],[学费 津贴],[交通津贴]。让我知道您的查询是否仍然无法解决:
select sr,PayDescr,[Basic Salary],[Food Allowance],[Tuition Allowance],[Transportation Allowance] from
(select sr= case when rtrim(Ctname.PayCat)='GS' then 1 when rtrim(Ctname.PayCat)='BS' then 2
when rtrim(Ctname.PayCat)='HA' then 3
when rtrim(Ctname.PayCat)='TA' then 4
when rtrim(Ctname.PayCat)='FA' then 5
else 6 end , PayDescr = rtrim(Ctname.Descr),SUM(PayMonAmt) as PayMonAmt
from maEmpPay mn
outer apply(
select Descr,PayCat from maPayCat pc
where mn.PayCat = pc.PayCat
)Ctname
where EmpID = mn.EmpID group by Ctname.Descr, Ctname.PayCat) pv
pivot
(
sum (PayMonAmt) for PayDescr IN ([Basic Salary],[Food Allowance],[Tuition Allowance],[Transportation Allowance])) AS e