構築しようとしているビューが2つあります。ビュー#1は、紹介が過去14日間に発生したという条件(およびその他のいくつかの基準)を含む一連の紹介データを返すだけです。これで完了です。
2番目のビュー#2は、過去14日間に紹介された顧客の関連するすべての紹介(ビュー#1からの紹介)を返す必要がありますが、表示されている紹介日の60日以内に制限する必要があります#1には、ビュー#1からの同じ紹介を含めることはできません。また、ビュー#1からの関連する紹介の後に、関連する紹介を作成することはできません。
ビュー#1:TP.INC_REFERRALS_V
したがって、基本的には、1番目のビューの参照に基づく各参照の2番目のビューに日付条件を設定します。
これまでのところ、クエリ終了時の私の条件は次のとおりです。
...
WHERE TP.PROSPECT.PROSPECT_ID IN ((SELECT TP.INC_REFERRALS_V.REFERRAL_TABLE_PROS_ID FROM TP.INC_REFERRALS_V))
-これは、識別子(prospect_id)を最初のビュー(tp.inc_referrals_v)と照合して、関連するすべての参照を返します
AND TP.REFERRAL_V.REFERRAL_ID NOT IN (SELECT TP.INC_REFERRALS_V.REFERRAL_ID FROM TP.INC_REFERRALS_V)
-これは、最初のビューですでに返された紹介を除外します
AND...
--他の基準のロジックが必要です。
提案?
1番目のビューのクエリは以下のとおりです。3番目のビューはまったく同じ形式ですが、条件が異なります。(これは私が問題を抱えている部分です)
ビュー#1
SELECT TP.REFERRAL_V.REFERRAL_ID,
TP.REFERRAL_V.PROSPECT_ID AS REFERRAL_TABLE_PROS_ID,
TP.PROSPECT.PROSPECT_ID,
TP.PROSPECT.SEARCH_NAME AS CUSTOMER_PROSPECT_NAME,
TP.PROSPECT.CUSTOMER_ID,
TP.PROSPECT.CUSTOMER_SINCE,
TP.PROSPECT.IS_BUSINESS,
TP.PRODUCT_ML_INFO.PRODUCT_CODE,
TP.PRODUCT_ML_INFO.PRODUCT_ID,
TP.REGION_ML_INFO.REGION_DESCRIPTION,
CASE WHEN (TP.REFERRAL_V.PRODUCT_ID) IS NULL THEN
TP.PRODUCT_CATEGORY_ML_INFO.PROD_CAT_DESCRIPTION ELSE
TP.PRODUCT_ML_INFO.PRODUCT_DESCRIPTION END AS PROD_CAT_NAME,
TP.REFERRAL_V.PROD_CATEGORY_ID,
(VXUZ.FIRST_NAME || ' ' || VXUZ.LAST_NAME) AS CREATED_BY,
(VXU2.FIRST_NAME || ' ' || VXU2.LAST_NAME) AS ASSIGN_TO,
CASE WHEN (TP.REFERRAL_V.REFERRAL_STATUS) = '2'
THEN TP.REFERRAL_V.CREDIT_LOCATION_NAME ELSE LCX1.LOCATION_NAME END AS ASSIGN_TO_COST_CENTER,
EXU2.EMPLOYEE_NUMBER AS ASSIGN_TO_EMP_NUM,
CXZ1.CODE_TEXT AS STAGE,
TP.CODE.CODE_TEXT AS STATUS,
TP.REFERRAL_EXTENSION_V.EXTENDED_DATETIME2 AS SOLD_DATE,
TP.REFERRAL_V.CREATED_WHEN AS ORIGINATION_DATE,
FROM TP.REFERRAL_V
(joins removed - too many to list)
WHERE VXU4.USER_ID <> VXU2.USER_ID
AND TRUNC(TP.REFERRAL_V.CREATED_WHEN) BETWEEN TRUNC(SYSDATE - 14) AND TRUNC(SYSDATE)
View1の結果
Referral_id Origination_Date Prospect_ID
2001 29-NOV-12 A1
2002 02-DEC-12 A2
2003 07-DEC-12 A3
View2の結果(次のようになります):
Referral_id Origination_Date Prospect_ID
1995 01-NOV-12 A1
1993 25-OCT-12 A2
1994 20-OCT-12 A2
1990 17-OCT-12 A2
1989 10-NOV-12 A3
View2の結果でわかるように、結果にはView1に関連する「prospect_ids」に関連するすべての参照が含まれている必要がありますが、60日前より前の日付は含まれておらず、View1自体に結果が含まれていてはなりません。