2

あいまいなタイトルでごめんなさい。

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

内部選択を使用したくありません。私がこれを行うことができる方法はありますか?これは、SQLServer2000を使用するレガシーシステムの1つです。よろしくお願いします。

4

1 に答える 1

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

これは、列が静的である場合にのみ機能します。日付が変更された場合は、これを変更する必要があります。

于 2012-11-20T17:24:54.260 に答える