Ich habe eine Abfrage, die ein Produkt Join tut, weil Join-Bedingung in der LOJ fehlt. Könnten Sie mir helfen, eine Alternative zu den folgenden zu finden:Getting Produkt beitreten Problem
SELECT DISTINCT
1 AS ARRANGEMENT_ID
,AR.ARRANGEMENT_TYPE_ID
,TRIM(LEADING '0' FROM SRC.QCA_KB_ACCT_NBR) AS UNIQUE_ID_IN_SOURCE_SYSTEM
,NULL AS AR_OPEN_DATE
,NULL AS AR_CLOSED_DATE
,NULL AS AR_LCS_DATE
,-3 AS AR_LCS_TYPE_ID
,CPT.PRODUCT_TYPE_ID
,-3 AS SUB_PRODUCT_TYPE_ID
,NULL AS REPRESENTING_ORG_UNIT_ID
,-3 AS AR_BRAND_TYPE_ID
,NULL AS INITIATING_IP_ID
,-3 AS CLOSED_REASON_TYPE_ID
,-3 AS GL_SBU_TYPE_ID
,-3 AS AR_PAYMENT_TYPE_ID
,-3 AS AR_STRUCTURE_TYPE_ID
,SRC.EFFECTIVE_START_DATE
,SRC.EFFECTIVE_END_DATE
,'ZAF'
,'40' AS FILE_ID
,'' AS ETL_PROCESS_ID
,CURRENT_TIMESTAMP(6) AS DW_LOAD_TIMESTAMP
,NULL AS DW_UPD_LOAD_TIMESTAMP
FROM Y.T_Q18000_ACCOUNT_MASTER_INT SRC
LEFT OUTER JOIN X.ARRANGEMENT_TYPE AR
ON AR.ARRANGEMENT_TYPE_DESC = 'Account Arrangement'
LEFT OUTER JOIN X.COMBD_PRODUCT_TYPE CPT
ON CPT.ORIGINAL_LOOKUP_TABLE_NAME = 'PRODUCT'
AND CPT.PRODUCT_TYPE_CODE = 'CARD'
AND CPT.PRODUCT_TYPE_DESC = 'Card'
AND CPT.EFFECTIVE_END_DATE = '3499-12-31'
Es wirft nicht mehr Platz in der Datenbank.
Sollte ich hier für Inline-Abfrage gehen. Ich habe keine Beitrittsbedingung für andere Tabelle.
Grüße, Amit
Hallo Dieter, Ja, das SECON d join ist erforderlich, da wir Ergebnisse für eine bestimmte Spezifikation von combd_product_type benötigen – user3901666
@ user3901666: Ich habe nicht bemerkt, dass der 2. Join auch ein 'CROSS JOIN' ist, Sie müssen ihn auch in eine Abgeleitete Tabelle wie den 1. Join verschieben, Ich habe meine Antwort bearbeitet. – dnoeth
Hallo Dieter, Bitte hilf mir zu verstehen, wie das helfen wird. Der Plan zeigt einige Verbesserungen, aber ich konnte den Grund nicht verstehen. – user3901666