SQL查询将两列合并为一列

时间:2012-11-20 17:20:09

标签: sql sql-server sql-server-2000

对于模糊的标题感到抱歉。

我有一个SQL查询

SELECT SaleDate, Location, SUM(DollarSales)
FROM [TableName]
WHERE (SaleDate= '2012-11-19' OR SaleDate= '2012-11-12')
GROUP BY SaleDate, Location
ORDER BY Location, SaleDate

我得到的结果如下

SaleDate                    Location    (No column name)
2012-11-12 00:00:00.000     002         21500.38
2012-11-19 00:00:00.000     002         24166.81
2012-11-12 00:00:00.000     016         14723.26
2012-11-19 00:00:00.000     016         12801.00

我希望结果看起来像

Location    (Sale on 11/12)    (Sale on 11/19)
002         21500.38           24166.81
016         14723.26           12801.00

我不想使用内部选择。有什么方法可以做到这一点。 这是我们使用SQL Server 2000的旧系统之一。 提前谢谢。

1 个答案:

答案 0 :(得分:5)

你可以尝试:

SELECT
Location,
SUM(CASE WHEN SaleDate = '2012-11-12' THEN DollarSales ELSE 0 END)'Sale on 11/12'
SUM(CASE WHEN SaleDate = '2012-11-19' THEN DollarSales ELSE 0 END)'Sale on 11/19'
FROM [TableName]
GROUP BY Location
ORDER BY Location

这只有在列是静态的情况下才有效,如果日期发生变化,你必须更改它。