2016-11-12 10 views
1

2行と同じ列の異なる2行の値を1つの行の異なる列に配置したいと考えています。表 enter image description here"異なる行の列"を "1列の異なる列"に配置するには

は、例えば、私は(LEDGERNAMEに、(LEDGERNAMEそのVOUCHER_BY博士である)によって、(両方の列に同じ)がref_noされ、単一row.Inには1 & 2行単一の行をしたいんVOUCHER_BYはCrです)、AMOUNT(両方の行が同じです)またはこれに似ています - enter image description here

私はこれをどのように行うことができますか? REF_NO,AMOUNT

答えて

2

シンプルに。自己参加:

0

使用GROUP BYLEDGERNAMEMINMAXはあなたにBYTOを与えるようにします。

次のソリューションは、動作するはずです:

SELECT REF_NO,min(LEDGERNAME) as 'BY',MAX(LEDGERNAME) as 'TO',AMOUNT 
    FROM [yourtable] 
    GROUP BY REF_NO,AMOUNT 
+1

逆の順序でledgernameを指定するとどうなりますか?それは間違った方法です。 – GurV

0

私はKumar_Vikasのソリューションに一歩進んでいます。投稿者は、voucher_byがDrのときはBY列が必要で、CrのときはTOという列に入るはずです。

SELECT REF_NO as ref_no 
     ,max(case when voucher_by='Dr' then LEDGERNAME end) as 'BY' 
     ,MAX(case when voucher_by='Cr' then LEDGERNAME end) as 'TO' 
     ,MAX(AMOUNT) as Amount 
    FROM [yourtable] 
GROUP BY REF_NO 
関連する問題