-1

我这里有个小问题。我想从同一个表中加入两次,并按一个共同的值分组。
这是数据集(来自表 Voucher):

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

我该如何解决这个问题?

4

2 回答 2

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是一个非常糟糕的列名称。

于 2012-04-04T06:25:21.757 回答
-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

具体语法取决于您的数据库系统。

于 2012-04-04T06:17:10.677 回答