JIRA アイテムの作成と終了をそれぞれ表す 2 つの日付列を持つテーブルがあります。レポートの場合、日付ごとに作成されたアイテムと閉じられたアイテムの数、および累積を取得する必要があります。
ただし、一部の日付ではアイテムが作成またはクローズされないため、完全外部結合は null 値を返します。これにより、修正できない累積合計列の値が null になります。
合体でさまざまなことを試しました:
Select
coalesce(A.createdate, B.closedate) datum
,COALESCE(A.created, 0) created
,COALESCE(B.closed,0) closed
,sum(created) OVER(ORDER BY A.createdate ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) cumSum
,sum(coalesce(created,0)) OVER(ORDER BY A.createdate ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) cumSum2
,COALESCE(sum(created) OVER(ORDER BY A.createdate ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),0) cumSum3
,sum(coalesce(created,0)) OVER(ORDER BY A.createdate ROWS BETWEEN UNBOUNDED PRECEDING AND 1 preceding) + coalesce(created,0) cumSum4
from
(SELECT convert(date,[Created]) createdate, COUNT(*) created
FROM [jira].[dbo].[report_clean_full]
group by convert(date,[Created])) A
full outer join (SELECT convert(date,Resolved) closedate, COUNT(*) closed
FROM [jira].[dbo].[report_clean_full]
where status = 'Closed'
group by convert(date,Resolved)) B
on A.createdate = B.closedate
order by 1
結果
2012-08-17 1 0 1 1 1 1
2012-08-23 1 0 2 2 2 2
2012-08-30 4 0 6 6 6 6
2012-09-03 1 0 7 7 7 7
2012-09-06 25 0 32 32 32 32
2012-09-07 30 3 62 62 62 62
2012-09-10 11 6 73 73 73 73
2012-09-11 6 1 79 79 79 79
2012-09-13 1 0 80 80 80 80
2012-09-14 10 1 90 90 90 90
2012-09-17 7 1 97 97 97 97
2012-09-18 4 2 101 101 101 101
2012-09-19 4 2 105 105 105 105
2012-09-20 19 5 124 124 124 124
2012-09-21 12 0 136 136 136 136
2012-09-24 7 1 143 143 143 143
2012-09-26 0 7 NULL 0 0 0
2012-09-27 18 2 161 161 161 161
2012-09-28 7 0 168 168 168 168
2012-10-01 4 1 172 172 172 172
2012-09-26 にはアイテムのみが閉じられていましたが、cumSum に 0 ではなく 143 を表示するようにします (最終的には閉じたアイテムについて繰り返し、開いているアイテムの数を取得するために減算します)
誰かが私が間違っていることを説明できますか?