0

次のような売上を表示するクエリを作成しようとしています。

     Jan  Feb  Mar  ...
2011 1253 1381 1973 ...
2012 3124 3829 1823 ...

上部には 1 月から 12 月までの月が表示され、左側の列には年が表示されます。データはその年月の全期間の合計値です。

このテーブルには、合計と日時フィールドを含む販売レコードが含まれています。

UNPIVOT を使用してこれに関するいくつかのオプションを見てきましたが、頭を悩ませることはできません。

ありがとう

4

1 に答える 1

1

テーブル構造を見なくても、次のようなことができます

select
      year( YT.YourDateColumn ) as SalesYear,
      sum( if( month( yt.YourDateColumn ) = 1, YT.SalesAmt, 000000.00 )) as Jan,
      sum( if( month( yt.YourDateColumn ) = 2, YT.SalesAmt, 000000.00 )) as Feb,
      sum( if( month( yt.YourDateColumn ) = 3, YT.SalesAmt, 000000.00 )) as Mar,
      sum( if( month( yt.YourDateColumn ) = 4, YT.SalesAmt, 000000.00 )) as Apr,
      sum( if( month( yt.YourDateColumn ) = 5, YT.SalesAmt, 000000.00 )) as May,
      sum( if( month( yt.YourDateColumn ) = 6, YT.SalesAmt, 000000.00 )) as Jun,
      sum( if( month( yt.YourDateColumn ) = 7, YT.SalesAmt, 000000.00 )) as Jul,
      sum( if( month( yt.YourDateColumn ) = 8, YT.SalesAmt, 000000.00 )) as Aug,
      sum( if( month( yt.YourDateColumn ) = 9, YT.SalesAmt, 000000.00 )) as Sep,
      sum( if( month( yt.YourDateColumn ) = 10, YT.SalesAmt, 000000.00 )) as Oct,
      sum( if( month( yt.YourDateColumn ) = 11, YT.SalesAmt, 000000.00 )) as Nov,
      sum( if( month( yt.YourDateColumn ) = 12, YT.SalesAmt, 000000.00 )) as Dec
   from
      YourTable YT
   group by
      year( YT.YourDateColumn )
   order by
      Year( YT.YourDateColumn )
于 2012-05-19T00:12:31.237 に答える