「ステータス」期間エントリの合計を返すことになっているクエリがあります。期間は、datediff(n、datestamp、(現在のステータスを終了する日付スタンプを返すサブクエリ、つまり、ロックされた後の次の適切な「ステータス変更」エントリを見つけるサブクエリ)を使用して計算されます。
私の問題は、次のクエリがマルチパート識別子エラーを返すことです
- INCテーブルは、他のテーブルの「NUMBER」に関連する「INCIDENT_NUMBER」を探しています。
- ACTM1はすべてのDATESTAMPエントリを保持します
- ACTA1は「THENUMBER」を介してACTM1に関連付けられており、エントリが適切なステータス変更であるかどうかに関するすべての情報を保持します。
コード:
SELECT SUM(DATEDIFF(n, ACTM1.DATESTAMP, END_DATESTAMP_TABLE.END_DATESTAMP))
FROM INC LEFT OUTER JOIN
ACTM1 ON INC.INCIDENT_NUMBER = ACTM1.NUMBER LEFT OUTER JOIN
ACTA1 ON ACTM1.THENUMBER = ACTA1.THENUMBER LEFT OUTER JOIN
/**/
(SELECT ACTM1_1.NUMBER, ACTM1_1.DATESTAMP AS END_DATESTAMP
FROM ACTM1 AS ACTM1_1 LEFT OUTER JOIN
/**/
(SELECT ACTM1_1_1.NUMBER, MIN(ACTM1_1_1.THENUMBER) AS FOLLOWUP_THENUMBER
FROM ACTM1 AS ACTM1_1_1
WHERE (ACTM1_1_1.THENUMBER > /**/ ACTM1_1.THENUMBER)/*I think here lies the problem*/
AND (ACTM1_1_1.[TYPE] IN ('Open', 'Status Change', 'Resolved', 'Closed')))
AS FOLLOWUP_THENUMBER_TABLE
/**/
ON ACTM1_1.NUMBER = FOLLOWUP_THENUMBER_TABLE.NUMBER)
AS END_DATESTAMP_TABLE
/**/
ON ACTM1.NUMBER = END_DATESTAMP_TABLE.NUMBER
WHERE ...
これについて私に教えてくれる有益なコメントやヒントをいただければ幸いです。
PS