2014-01-14 77 views
1

我有這樣的SQL語句顯示輸出SQL

SELECT STYLERELEASE.StyleID,SUM(STYLERELEASE.Quantity) as [Total rel], 
     SUM(STYLERECEIVE.Quantity) as [Total Receive], 
     STYLERELEASE.Quantity - STYLERECEIVE.Quantity AS [Balance], 
     ToWhom 
FROM STYLERELEASE 
     JOIN STYLERECEIVE 
      ON STYLERELEASE.ReleaseID = STYLERECEIVE.ReleaseID 
      AND STYLERELEASE.ToWhom = STYLERECEIVE.FromWhere 
WHERE STYLERELEASE.StyleID = 'SN00000' 
    AND ToWhom = 'Repair' 
    OR ToWhom = 'Client' 
GROUP BY STYLERELEASE.StyleID, STYLERELEASE.Quantity, STYLERECEIVE.Quantity, STYLERELEASE.ToWhom 

這給該輸出

+-------+---------+-------------+-------+------+ 
|StyleID|Total rel|Total Receive|Balance|Towhom| 
+-------+---------+-------------+-------+------+ 
|SN00000|30  |55   |-25 |Client| 
+-------+---------+-------------+-------+------+ 
|SN00000|100  |55   |45  |Repair| 
+-------+---------+-------------+-------+------+ 

我希望我的輸出變成這個樣子

+-------+---------+-------------+-------+------+---------+-------------+-------+------+ 
|StyleID|Total rel|Total Receive|Balance|Towhom|Total rel|Total Receive|Balance|Towhom| 
+-------+---------+-------------+-------+------+---------+-------------+-------+------+ 
|SN00000|30  |55   |-25 |Client|100  |55   |45  |Repair| 
+-------+---------+-------------+-------+------+---------+-------------+-------+------+ 

我怎麼能實現這個任何幫助將不勝感激。

+0

@Toni阿爾梅達感謝,但我需要顯示在單行具有相同風格的id 2輸出的任何幫助將非常感謝:) – Vince

+0

嗨@Vince,我剛剛編輯你的問題,以更好的易讀性,如果我的編輯有問題請恢復更改。 –

回答

1

假設當前查詢返回「客戶」和「修復」一個styleid

WITH cte AS 
(
    SELECT STYLERELEASE.StyleID, 
      SUM(STYLERELEASE.Quantity) as [Total rel], 
      SUM(STYLERECEIVE.Quantity) as [Total Receive], 
      STYLERELEASE.Quantity - STYLERECEIVE.Quantity AS [Balance], 
      ToWhom 
    FROM STYLERELEASE 
    JOIN STYLERECEIVE 
     ON STYLERELEASE.ReleaseID = STYLERECEIVE.ReleaseID 
    AND STYLERELEASE.ToWhom = STYLERECEIVE.FromWhere 
    WHERE STYLERELEASE.StyleID = 'SN00000' 
     AND ToWhom = 'Repair' 
     OR ToWhom = 'Client' 
    GROUP BY STYLERELEASE.StyleID, STYLERELEASE.Quantity, STYLERECEIVE.Quantity, STYLERELEASE 
) 

SELECT * 
FROM (SELECT * FROM cte WHERE ToWhom='Client') client 
JOIN (SELECT * FROM cte WHERE ToWhom='Repair') repair 
    ON client.STYLEID = repair.STYLEID 
+0

@ T我感謝它的工作答案,但我StyleID重複如何刪除它? 這樣的 SN00000 | 30 | 55 | -25 |客戶端| 100 | 55 | 45 |修復 – Vince

+0

@因爲您可以並應該在選擇內指定您想要的列。我只是懶惰... –

+0

@Vince如果這回答你的要求,請考慮接受它。 – CloudyMarble