我在下面发布了我用来检索数据并输出它的显示方式以及我还需要什么的查询..请告诉我如何将行转换为列数据
you should use pivot when you want to convert rows to column base on one column
( select left(BarCdmID,2) as BarCdmID ,
[0] as AME,
[1] as AMV,
[2] as BHV ,
[3] as BRV,
[4] as EOR ,
[5] as IPA,
[6] as IPB,
[7] as LTC,
[8] as OHW from BARCDM_FACIL) T
pivot
(facility_misfacID
FOR T.BarCdmID
IN [0],[1],[2],[3],[4],[5],[6],[7],[8]
) as pvt
Just use conditional aggregation since the columns are constant.
select
BarCdmID
, AME = MAX(case when Facility_MisFacID = 'AME' then MyCount end)
, AMV = MAX(case when Facility_MisFacID = 'AMV' then MyCount end)
, BHV = MAX(case when Facility_MisFacID = 'BHV' then MyCount end)
, BRV = MAX(case when Facility_MisFacID = 'BRV' then MyCount end)
, EOR = MAX(case when Facility_MisFacID = 'EOR' then MyCount end)
, IPA = MAX(case when Facility_MisFacID = 'IPA' then MyCount end)
, IPB = MAX(case when Facility_MisFacID = 'IPB' then MyCount end)
, LTC = MAX(case when Facility_MisFacID = 'LTC' then MyCount end)
, OHW = MAX(case when Facility_MisFacID = 'OHW' then MyCount end)
from
(
Select BarCdmID = LEFT(BarCdmID, 2)
, Facility_MisFacID
, MyCount = count(*)
from BarCdm_Facil
group by LEFT(BarCdmID, 2)
, Facility_MisFacID
) x
group by X.BarCdmID
order by BarCdmID
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.