2017-02-24 3 views
1

のような、この上の任意の1つのヘルプは、「最初の行でも2番目の行をしたい」ことができます参加しSQL Serverの内部は...

SELECT BDSReleaseBDDSBPD.ProjectID, 
     BDSFlowDetails.Flowid,IterationID, 
     case when ReleaseTask = 'BDDS' then UID end as 'BDDS UID' , 
     case when ReleaseTask = 'BDDS' then Concat(FirstName,'_',Lastname) end as BDDSReleasedBy, 
     case when ReleaseTask = 'BDDS' then ReleaseDate end as 'BDDS Released Date' , 
     case when ReleaseTask = 'BPD' then UID end as 'BPD UID' , 
     case when ReleaseTask = 'BPD' then Concat(FirstName,'_',Lastname) end as BPDReleasedBy, 
     case when ReleaseTask = 'BPD' then ReleaseDate end as 'BPD Released Date' 
FROM BDSReleaseBDDSBPD 
inner join BDSFlowDetails on BDSFlowDetails.FlowID = BDSReleaseBDDSBPD.FlowID 
inner join BDSUserProfile on BDSUserProfile.UserName=BDSReleaseBDDSBPD.UserName 
WHERE BDSReleaseBDDSBPD.ProjectID = 861 
order by BDSFlowDetails.Flowid 

[SQL結果セット..] [![ここに画像の説明を入力します] [1] [1]

enter image description here

答えて

1
あなたは ProjectIDに旋回できる

Flowid、レコードを結合するアグリゲーションを使用してIterationID列:

SELECT BDSReleaseBDDSBPD.ProjectID, 
     BDSFlowDetails.Flowid, 
     IterationID, 
     MAX(CASE WHEN ReleaseTask = 'BDDS' THEN UID END) AS 'BDDS UID', 
     MAX(CASE WHEN ReleaseTask = 'BDDS' 
       THEN CONCAT(FirstName, '_', Lastname) END) AS BDDSReleasedBy, 
     MAX(CASE WHEN ReleaseTask = 'BDDS' 
       THEN ReleaseDate END) AS 'BDDS Released Date' , 
     MAX(CASE WHEN ReleaseTask = 'BPD' THEN UID END) AS 'BPD UID' , 
     MAX(CASE WHEN ReleaseTask = 'BPD' 
       THEN CONCAT(FirstName, '_', Lastname) END) AS BPDReleasedBy, 
     MAX(CASE WHEN ReleaseTask = 'BPD' 
       THEN ReleaseDate END) AS 'BPD Released Date' 
FROM BDSReleaseBDDSBPD 
INNER JOIN BDSFlowDetails 
    ON BDSFlowDetails.FlowID = BDSReleaseBDDSBPD.FlowID 
INNER JOIN BDSUserProfile 
    ON BDSUserProfile.UserName = BDSReleaseBDDSBPD.UserName 
WHERE BDSReleaseBDDSBPD.ProjectID = 861 
GROUP BY BDSReleaseBDDSBPD.ProjectID, 
     BDSFlowDetails.Flowid, 
     IterationID 
ORDER BY BDSFlowDetails.Flowid 
関連する問題