/*ActivityAccountDetailsByAccountNbr ----------------------------------- Get Account Details that are used by Activities. Used to Re-query accounts to check for relevant account fields changes. --Notes It is expected that this will grow over time and require joining on more fields, it is therefore kept separate from a more generic account query. */ WITH DebtProtection AS ( SELECT a.ACCTNBR, MAX(var.CALCTYPEFFDATE) AS EffectiveDate, MAX(var.CALCINACTIVEDATE) AS InactiveDate, a.BALCATCD AS DPCategory FROM OSIBANK.ACCTSUBACCT a INNER JOIN ( SELECT sa.ACCTNBR, sa.SUBACCTNBR AS SUBACCTNBR FROM OSIBANK.ACCTSUBACCT sa WHERE sa.BALTYPCD = 'SINS' GROUP BY ACCTNBR, sa.SUBACCTNBR ) b ON a.ACCTNBR = b.ACCTNBR AND a.SUBACCTNBR = b.SUBACCTNBR INNER JOIN OSIBANK.ACCTSUBACCTCALCVAR var ON a.ACCTNBR = var.ACCTNBR AND a.SUBACCTNBR = var.SUBACCTNBR GROUP BY a.ACCTNBR, var.CALCTYPEFFDATE, var.CALCINACTIVEDATE, a.BALCATCD ) SELECT acc.ACCTNBR AS AccountNumber, acc.CURRACCTSTATCD AS CurrentAccountStatus, acc.TAXRPTFORPERSNBR AS TaxPersonNbr, acc.TAXRPTFORORGNBR AS TaxOrgNbr, acc.BRANCHORGNBR As BranchOrgNbr, acc.MJACCTTYPCD AS MajorAccountType, acc.CURRMIACCTTYPCD AS MinorAccountType, acc.CONTRACTDATE AS AccountContractDate, dp.EffectiveDate AS DebtProtectionEffectiveDate, dp.InactiveDate AS DebtProtectionInactiveDate, dp.DPCategory AS DebtProtectionCategory FROM OSIBANK.ACCT acc LEFT JOIN DebtProtection dp ON dp.ACCTNBR = acc.ACCTNBR WHERE acc.ACCTNBR IN :accountNumbers