2017-07-26 64 views
0

我有兩個表稱爲A,B。我寫的SQL查詢從A檢索數據,B.它如下:SQL SELECT查詢兩行合併

SELECT A.No , 
    A.ItemCode, 
     case when B.Year = 1 then SUM(B.Sale_Amount) end as "1Year", 
     case when B.Year = 2 then SUM(B.Sale_Amount) end as "2Year", 
     case when B.Year = 3 then SUM(B.Sale_Amount) end as "3Year" 
FROM A 
LEFT OUTER JOIN B ON B.ID = A.CODE  
GROUP BY 
A."No", 
A."ItemCode", 
B."Year" 

這給了下面的輸出:

result

但我需要這三行兩行選擇如下:

reslut wanted

+2

刪除組。由於您按年份分組,但第二和第三行具有不同的年份值,因此不會像您期望的那樣將它們分組在一行中。 – subro

+0

[部分數據透視不帶樞軸運算符]的可能重複(https://stackoverflow.com/questions/12542711/partial-pivot-without-pivot-operator) –

+0

其中[DBMS](https://en.wikipedia.org/ wiki/DBMS)你在用嗎? Postgres的?甲骨文? –

回答

0

這是正確的答案

SELECT A.No , 
A.ItemCode, 
    SUM(case when B.Year = 1 then B.Sale_Amount end) as [1Year], 
    SUM(case when B.Year = 2 then B.Sale_Amount end) as [2Year], 
    SUM(case when B.Year = 3 then B.Sale_Amount end) as [3Year] 


LEFT OUTER JOIN B開B.ID = A.CODE
GROUP BY A.No,A.ItemCode逐年