1

私はこのフォーマットのようなデータを持っています...

ID  id  date                     time           total
-----------------------------------------------------------    
51  192 2012-08-14 00:00:00.000 02:10 PM    4900.00
51  191 2012-08-11 00:00:00.000 03:20 PM    5500.00
51  35  2012-08-17 00:00:00.000 10:30 AM    2900.00
51  35  2012-08-17 00:00:00.000 11:50 AM    10800.00
51  192 2012-10-23 00:00:00.000 04:00 PM    2900.00
51  192 2012-10-23 00:00:00.000 03:00 PM    2900.00
51  192 2012-10-23 00:00:00.000 10:10 AM    2900.00
51  192 2012-10-23 00:00:00.000 02:50 PM    2300.00
51  191 2012-11-16 00:00:00.000 04:00 PM    2900.00

sum(total)月単位で表示したいのですが。1か月を通して予約が利用できない場合、その月には0の値が表示されます。その月の値をグラフにプロットしたいからです。

この質問を手伝ってもらえますか?

4

3 に答える 3

1

これを試して:

select  Years,number as Month,isnull(Total,0) as Total
from(
    select number 
    from master..spt_values 
    where type='P' 
    and number between 1 and 12) seq
cross join (select distinct Year([date]) as Years from Table1) y
left join
    (select Year([date])as Year,month([date])as Month,sum(total) as Total
     from Table1 
     group by  Year([date]),month([date]))t
on seq.number=t.Month
and t.year=y.Years            


SQLフィドルデモ

于 2012-11-21T07:06:55.183 に答える
0

クエリ:

SQLFIDDLE例

SELECT 
t.month
,isnull(SUM(total),0) AS total
FROM (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)
      )  AS t(month)
LEFT JOIN Table1 t1
  ON MONTH(t1.date) = t.month
GROUP BY t.month

結果:

| MONTH | TOTAL |
-----------------
|     1 |     0 |
|     2 |     0 |
|     3 |     0 |
|     4 |     0 |
|     5 |     0 |
|     6 |     0 |
|     7 |     0 |
|     8 | 24100 |
|     9 |     0 |
|    10 | 11000 |
|    11 |  2900 |
|    12 |     0 |
于 2012-11-21T07:18:41.817 に答える