私が使用するコードは、where 句の日付に基づいて正しい情報を提供します。他の日程でも同じ情報が欲しいです。そのため、自分で日付を変更してコードを実行し、コピーして別の場所に貼り付けて、新しい日付でやり直す必要があります。1 年中毎日の情報が必要な場合、これには多くの作業が必要です。where句の日付を自動的に変更することは可能ですか?それを行うための最良または最も簡単な方法は何ですか?
Select t4.Count, t4.Status
From(
SELECT count(l.VoerID) as Count, l.Datum, l.Status, l.LogID
FROM (
SELECT k.VoerID, k.Datum, MAX(k.LogID) AS LogID
FROM DB.LogStatus k
Where Datum < '2013-07-01'
GROUP BY k.VoerID
) m
JOIN DB.LogStatus l
ON l.VoerID = m.VoerID AND l.LogID = m.LogID
Where status in ('B','IN1','IN2''V','Reserv')
Group by Status
)t4
編集:
元のテーブル (1 つの VoerID で選択) (テーブルは数千の VoerID で構成されています)
LogID Datum UserID Status Time VoerID
1299772 2013-04-17 259 N 14:09:11 50174
1319774 2013-05-23 68 B 11:19:17 50174
1320038 2013-05-23 197 IN1 16:53:30 50174
1322002 2013-05-28 68 IN2 09:22:32 50174
1325052 2013-05-31 161 G 09:00:59 50174
1325166 2013-05-31 10 400 09:15:12 50174
1325182 2013-05-31 10V 09:30:07 50174
1325208 2013-05-31 10V 09:45:06 50174
1325406 2013-05-31 10 予約 11:45:06 50174
1325522 2013-05-31 10 予約 12:15:06 50174
1325954 2013-05-31 10 予約 15:15:13 50174
1328474 2013-06-05 10 予約 13:15:06 50174
1329230 2013-06-06 10 予約 09:45:03 50174
1329244 2013-06-06 10 アーカイブ済み 10:00:08 50174
1329268 2013-06-06 10 アーカイブ済み 10:15:08 50174
1330286 2013-06-07 10 アーカイブ済み 10:15:06 50174
すべての最初の月の VoerID のステータスを確認したいと思います。2013-05-01 ステータス = N、2013-06-01 ステータス = 予約、2013-07-01 からはアーカイブ済みです。
上記は 1 つの VoerID の場合です。月初ごと、翌月初日までの最後のLOGIDごと、ステータスごとにVoerIDの数を数えたい
最後に、MSExcel でクロステーブルとチャートに編集したい情報を取得した場合:
2013 年 1 月 1 日 2013 年 1 月 2 日 2013 年 1 月 3 日 2013 年 1 月 4 日 2013 年 1 月 5 日
N 20 22 24 26 28
B 23 21,5 20 18,5 17
IN1 12 15 18 21 24
IN2 15 7 14 18 25
V 800 1000 1200 1400 1600
予約 50 63 76 89 102
アーカイブ済み 100000 101220 102440 103660 104880