2012-04-04 101 views
-1

我在這裏有一個小問題。我想要從同一個表中加入兩次,並按共同的值進行分組。
這裏是數據集(從表憑證):如何從同一張表中加入兩次。同組列

Date (dd/mm/yyyy) Amount 
-------------------------- 
01.01.2010   1.000 
15.01.2010   2.000 
01.03.2010   3.000 
01.03.2010   4.000 
01.05.2010   5.000 
01.01.2011   1.000 
01.02.2011   2.000 
01.04.2011   3.000 
15.04.2011   4.000 
01.05.2011   5.000 

結果應該是這樣的:

Month Amount 2010 Amount 2011 
--------------------------------- 
1  3.000   1.000 
2      2.000 
3  7.000 
4      7.000 
5  5.000   5.000 

如何解決這個問題?

+0

鑑於您的其他問題,我猜SQL Server。你還沒有學會如果你問一個SQL問題,你需要告訴我們你正在使用哪個RDBMS? – 2012-04-04 06:22:50

+0

@Damien_The_Unbeliever我總是在改進(我希望) - 下次會做得更好:) – hightow 2012-04-04 06:47:41

回答

5

東西沿着這些線路會爲這種情況下工作:

SELECT 
    DATEPART(month,[Date]) as Month, 
    SUM(CASE WHEN DATEPART(year,[Date]) = 2010 THEN Amount END) as [Amount 2010], 
    SUM(CASE WHEN DATEPART(year,[Date]) = 2011 THEN Amount END) as [Amount 2011] 
FROM 
    Voucher 
GROUP BY 
    DATEPART(month,[Date]) as Month 

在其他情況下,你可能想看看PIVOT

Date是一個真正糟糕的名字。

+0

Tablename是在OP中寫的優惠券,但沒有biggie :) 會試試這個,謝謝 – hightow 2012-04-04 06:33:46

-2

你必須給表就像這個例子不同的名字:

SELECT Fruit1, F1FruitName = F1.FruitName, F1FruitCost = F1.FruitCost, 
Fruit2, F2FruitName = F2.FruitName, F2FruitCost = F2.FruitCost FROM T1 
JOIN T2 F1 ON Fruit1 = F1.Fruit_ID 
JOIN T2 F2 ON Fruit2 = F2.Fruit_ID 

具體語法取決於您的數據庫系統。