私は、各顧客が毎日どのくらい費やしているかを見ることができるように、左側に顧客を、上部に日付を入れたピボットテーブルを作成しています。私は全く新しいので、インターネットの助けを借りて、私は動作するコードを組み立て、私にピボットテーブルを与えました。SQL Serverピボットテーブル注文句ミステリー
問題は日付がランダムな順序であることです。フレーズで注文すると、インライン関数やビューでTopまたはOffsetを使用する必要があるというエラーが表示されます。
列を並べ替えるにはどうすればよいですか?
私のコードを改善するためのご意見は、非常に高く評価されます。私のDL_Dailyテーブルには、その顧客の顧客番号、その日付の顧客の総売上高が表示されます。
SELECT * INTO #DailyReport
FROM
(SELECT customer,salesdate [DATE], salesamt from DL_Daily where salesdate
between '2016/05/01' and '2016/05/31') TAB
SELECT * INTO #FileDates
FROM
(
SELECT distinct salesdate [DATE] from DL_Daily where salesdate between
'2016/05/01' and '2016/05/31'
) TAB
DECLARE @cols NVARCHAR (MAX)
SELECT @cols = COALESCE (@cols + ',[' + CONVERT(NVARCHAR, [DATE], 106) + ']',
'[' + CONVERT(NVARCHAR, [DATE], 106) + ']')
FROM (SELECT DISTINCT [DATE] FROM #DailyReport) PV
PRINT @cols
--Now pivot it
DECLARE @query NVARCHAR(MAX)
SET @query = '
SELECT * FROM
(
SELECT * FROM #DailyReport
) x
PIVOT
(
SUM(salesamt)
FOR [DATE] IN (' + @cols + ')
) p
'
EXEC SP_EXECUTESQL @query
DLデイリーサンプルデータ:
Customer Date Sales
1 5/1/2016 520.75
1 5/2/2016 501.75
2 5/1/2016 15.75
3 5/1/2016 150.75
3 5/2/2016 507.35
3 5/3/2016 530.75
1 5/3/2016 250.75
Results
Customer 5/1 5/3 5/2
1 520.75 250.75 501.75
2 15.25
3 150.75 530.75 507.35
望ましい結果:列がこの順序order by
が動作するはず5/1 5/2 5/3
ショーサンプルデータ、現在の結果と欲望の出力形式
111
てみてください。 [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぼう。 –私は質問を改善しました。私の問題について何か提案がありますか? – Missy
はい、注文してみるといいですか?コメントコードのように、どこで試してみましょうか? –