私のアプリケーションには、ISA の例外を表示するために使用される「Daily Exception Report」というレポートがあります。このテーブルには、重複したエントリ (レポート内のまったく同じ 2 つの行) が表示されます。
技術的な詳細。
例外レポートは、エントリが重複しているtable
呼び出しで使用可能なデータとともに表示されます。ExceptionFirstReported
への行にInsert Statement
使用されるは にあります。insert
ExceptionFirstReported
stored procedure
usp_Refresh_Daily_Exception_Report
INSERT INTO ExceptionFirstReported(
InvestorReference, ExceptionReason, First_Reported_Date, RelativeRef)
SELECT InvestorReference, ExceptionReason, Dateupdated, RelatedInvRef FROM (
SELECT * FROM DailyExceptionReport As DER
WHERE NOT EXISTS
(SELECT ExcepRptd.InvestorReference
FROM ExceptionFirstReported AS ExcepRptd
WHERE DER.InvestorReference = ExcepRptd.InvestorReference
AND DER.ExceptionReason = ExcepRptd.ExceptionReason
AND DER.RelatedInvRef = ExcepRptd.RelativeRef))
AS CI
JOIN currentISAs AN CI.InvestorReference = Status_Inv_Ref
同一InvestorReference
の ,ExceptionReason
と `RelatedInvRef.
ただし、エントリが重複しています。これは、insert
に行を挿入するために使用される唯一のステートメントtable
です。また、テーブルDailyExceptionReport
にcurrentISAs
は以前に重複が含まれていませんでした。
上記の挿入クエリはストア プロシージャ 'usp_refresh_dailyreport' で呼び出され、SP はサイクルで 1 回だけ実行されました。
@returnvalue = Exec usp_refresh_dailyreport
@ 戻り値 = 1 の場合
それから
InvestorReference ExceptionReason First_reported_dt
Recent_reported_dt relativeref report_gen_date
442643169642 ゼロ残高 2012-04-11 09:54:00
2012-05-04 23:58:00 NULL
442643169642 > 1 つの ISA 2012-04-21 06:30:00 2012-04-23 23:58:00 452750423823 NULL
442643169642 > 1 つの ISA 2012-04-21 06:30:00
2012-04-23 23:58:00 452750423823 NULL
「ExceptionFirstReported」テーブルの上記のデータの最後の 2 行は同一であり、同じ相対参照 (null ではない) が含まれています。「relativeref」はnullフィールドではありませんが、最初の行のように空白のデータを保持する可能性があります。