これが私のシナリオです。私はこのようなテーブルを持っています:
-------------------------------------------------- -------------------------------- | チケット| 開始日| 終了日| -------------------------------------------------- -------------------------------- | 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で注文;