SQL将行转换为列

时间:2011-12-22 22:53:02

标签: sql crosstab

如何在SQL中将行转换为列

FIRMA       PSNR    FELDNR  PFLFDNR INHALT  PFGLTAB PFGLTBIS
1           1       013     1       1211111 201111  20111231
1           1       014     2       0,75    2011121 20111111
1           2       013     1       1312312 2011101 20991010
1           2       014     2       1       2011101 20991010
1           3       013     1       666666  2011111 20190101
1           3       014     2       0,925   2011010 20990101

应该是这样的:psnr是关键,而feldnr 013014有不同的价值

FIRMA       PSNR   FELDNR  PFLFDNR  INHALT  (Inhalt as FTE) PFGLTAB PFGLTBIS
1           1       013     1       12111111 0,75           201111  20111231
1           2       013     1       1312312  1              2011101 20991010
1           3       013     1       666666   0,925          2011111 20190101

1 个答案:

答案 0 :(得分:0)

不是100%肯定你在问什么,但这里有:

select a.FIRMA,a.PSNG,a.FELDNR,a.PFLFDNR,a.INHALT,b.INHALT as '(Inhalt as FTE)',
       a.PFGLTAB,a.PFGLTBIS
FROM table a
JOIN table b ON a.FIRMA=b.FIRMA and a.PSNR=b.PSNR AND b.FELDNR='014'
WHERE a.FELDNR='013'