これが私のシナリオです。私はこのようなテーブルを持っています:
-------------------------------------------------- -------------------------------- | チケット| 開始日| 終了日| -------------------------------------------------- -------------------------------- | 123 | 4月1日| 4月20日| | 124 | 4月12日| 4月28日| | 125 | 4月16日| NULL | | 126 | 4月28日| 5月4日| | 127 | 5月2日| NULL | -------------------------------------------------- --------------------------------
そして、私はこのような結果セットを取得する必要があります:
-------------------------------------------------- -------------------------------- | 週| オープン| クローズ| アクティブ| -------------------------------------------------- -------------------------------- | 5 | 3 | 2 | 50 | | 6 | 4 | 5 | 49 | | 7 | 2 | 6 | 45 | | 8 | 5 | 4 | 46 | -------------------------------------------------- --------------------------------
基本的に、特定の週に開かれたチケットの数、閉じられた数、およびその週に単純にアクティブだった(以前に開かれ、まだ閉じられていない)数を確認したいと思います。
開いた列と閉じた列を導出する方法を理解したかもしれませんが、これからアクティブな列をクエリするのに本当に苦労しています。何か案は?
更新:要求に応じて情報を追加します。
これはSQL用です。
私がこれまでに持っているクエリは次のようなものですが、まだアクティブなものは含まれていません。
選択する
a.week、
a.created、
b。クローズ
から
((
選択する
DATEPART(WEEK、t。[開始日])AS週、
COUNT(t。[ticket])ASオープン
FROM sqltable AS t
WHERE[開始日]>GETDATE()-69-過去10週間
GROUP BY
DATEPART(WEEK、t。[開始日])
) として
左参加
((
選択する
DATEPART(WEEK、t。[終了日])AS週、
COUNT(t。[ticket])ASクローズ
FROM sqltable AS t
WHERE[終了日]>GETDATE()-69-過去10週間
GROUP BY
DATEPART(WEEK、t。[終了日])
)AS b
オンa.week=b.week
a.weekで注文;