Ik heb als volgt een opgeslagen procedure. Mijn vraag is kan ik #tmp_- lijsten (ex #tmp_initial_RMD_candidates) gebruiken om middengegevens op te nemen en dan de definitieve gegevens te laden in een lijst „tp_“ die zal worden gebruikt om een rapport te produceren? ************************** ********** ********** ********** ********** ********** ********** ********* If er BESTAAT (SELECTEER * UIT INFORMATION_SCHEMA.TABLES WAAR TABLE_SCHEMA = „dbo“ EN TABLE_NAME = „tp_rmd_rpt“)/> de LIJST van de DALING GO IF BESTAAT (UITGEZOCHTE naam VAN sysindexes WAAR naam = „ix01“)/> de INDEX van de DALING GO --laat vallen lijst tp_rmd_rpt create- lijst dbo.tp_rmd_rpt ( prsn_id int., pers_id int., varchar ss_nr (9), varchar fst_nm (20), varchar mid_nm (20), varchar last_nm (20),/> sfx_cd klusje brth_dt datetime, deth_dt datetime, -- verouder decimaal (4.1), RMD_dt datetime ) GO create index ix01 op tp_rmd_rpt (pers_id)/>/****** Voorwerp GOSET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /* ************************** ********** ********** ********** ********** ********** ********** ********** ****/>*: Opgeslagen Procedure dbo.csp_rmd_rpt ************************** ********** ********** ********** ********** ********** ********** ********** **** */ IF er BESTAAT (SELECTEER * UIT INFORMATION_SCHEMA.ROUTINES WAAR ROUTINE_SCHEMA = „dbo“ EN ROUTINE_NAME = „csp_rmd_rpt“)/> de PROCEDURE/>GO
CREATE dbo.csp_rmd_rpt
as
begin
declare @rpt_run_dt datetime select van de PROCEDURE dbo.csp_rmd_rpt
Select be_prsn.prsn_id, pers_id, fst_nm, mid_nm, last_nm, sfx_cd, brth_dt, deth_dt, convert (decimaal (5.2), (CASE WANNEER DATEPART (D, getdate ()) >= DATEPART (D, brth_dt) TOEN (DATEDIFF (m, brth_dt, getdate ()) /) ANDERS ((DATEDIFF (m, brth_dt, getdate ()) - 1) EIND)/12.0)) leeftijd, (geval wanneer dag (dateadd (maand, ((70*12) +6), brth_dt)) = 1 toen dateadd (maand, ((70*12) +6), brth_dt) anders dateadd (dag, van één dag (dateadd (maand, ((70*12) +6), brth_dt)), dateadd (maand, 1, dateadd (maand, ((70*12) +6), brth_dt))) eind) RMD_dt into #tmp_initial_RMD_candidates From be_prsn, be_empt_hist, be_mbr_acct, acct_stat_vw, be_mbr Where be_prsn.prsn_id = be_mbr.prsn_id en be_empt_hist.mbr_id = be_mbr_acct.mbr_id en be_empt_hist.mbr_id = be_mbr.mbr_id en be_mbr_acct.acct_id = acct_stat_vw.acct_id en be_mbr_acct.mbr_id = be_mbr.mbr_id en be_empt_hist.end_dt in (uitgezochte a.max_end_dt van (selecteer mbr_id, maximum (end_dt) max_end_dt van be_empt_hist waar mbr_id =/> groep be_mbr.mbr_id waar a.max_end_dt! = „2999-12-31“) en pers_id IS NULL en pln_id <> 3 en geen DATEDIFF (de MAAND, brth_dt ZET om (DATETIME, '04.15. '+ GIET (COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER MAAND (GETDATE ()) > 4 TOEN JAAR (getdate ()) + 1 ANDERS JAAR (getdate ()) EIND ZOALS varchar)) ) > 846 en acct_stat_vw.eff_dt = ( UITGEZOCHTE MAXIMUM (x.eff_dt) VAN acct_stat_vw ALS x WAAR x.acct_id = acct_stat_vw.acct_id EN x.acct_id = be_mbr_acct.acct_id en x.acct_stat_cd in (de „HANDELING“, „WACHT“, „DTH“) en zet om (klusje (10), x.eff_dt, 111) + streptokok (x.acct_id) =/> (uitgezochte maximum (bekeerling (klusje (10), x2.eff_dt, 111) + streptokok van acct_stat_vw x2 where x2.acct_id = acct_stat_vw.acct_id en x2.acct_id = be_mbr_acct.acct_id ) ) en acct_stat_vw.acct_stat_cd in (de „HANDELING“, „WACHT“, „DTH“) group door be_prsn.prsn_id, pers_id, ss_nr, fst_nm, mid_nm, last_nm, sfx_cd, brth_dt, deth_dt, (COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER DATEPART (D, getdate ()) >= DATEPART (D, brth_dt) TOEN (DATEDIFF (m, brth_dt, getdate ()) /) ANDERS ((DATEDIFF (m, brth_dt, getdate ()) - 1) EIND)/12.0) --verwijder dit uit definitief dossier aangezien de leeftijd niet in definitieve file. zal getoond worden, (geval wanneer dag (dateadd (maand, ((70*12) +6), brth_dt)) =1 toen dateadd (maand, ((70*12) +6), brth_dt) anders dateadd (dag, van één dag (dateadd (maand, ((70*12) +6), brth_dt)), dateadd (maand, 1, dateadd (maand, ((70*12) +6), brth_dt))) eind)
--krijg acct_bal select initial_rmd_accts.pers_id, initial_rmd_accts.deth_dt, sum (vw.pre_tax_cntrb+ vw.post_tax_cntrb + vw.empr_pre_tax_cntrb + vw.var_empr_pre_tax_cntrb_amt + vw.var_post_tax_cntrb_amt + vw.var_pre_tax_cntrb_amt+ vw.unt_cntrb_amt + vw.pre_tax_unt_cntrb_amt+ vw.rglr_int_item_amt+ vw.var_int_item_amt + vw.unit_int_item_amt) als tot_acct_bal into #acct_bal from #tmp_initial_RMD_candidates initial_rmd_accts, mam_acct_bal_vw VW, be_prsn a, be_mbr B, be_mbr_acct c where a.pers_id = initial_rmd_accts.pers_id en a.prsn_id = initial_rmd_accts.prsn_id en b.prsn_id = a.prsn_id en c.mbr_id = b.mbr_id en vw.acct_id = c.acct_id en c.pln_id <> 3 group door initial_rmd_accts.pers_id, initial_rmd_accts.deth_dt
select tprmd.pers_id pers_id, acctbal.deth_dt deth_dt, acctbal.tot_acct_bal, tprmd.prsn_id prsn_id, tprmd.fst_nm fst_nm, tprmd.mid_nm mid_nm, tprmd.last_nm last_nm, tprmd.sfx_cd sfx_cd, tprmd.brth_dt brth_dt, tprmd.RMD_dt RMD_dt,/>case uit wanneer (acctbal.tot_acct_bal = zijn 0.0 en acctbal.deth_dt ongeldig) of (acctbal.tot_acct_bal > zijn 0.0 en acctbal.deth_dt ongeldig) of (acctbal.tot_acct_bal > zijn 0.0 en acctbal.deth_dt niet ongeldig) dan eind aangezien RMD_flag into #tmp_rmd_flag from tp_rmd_rpt tprmd zich bij #acct_bal acctbal op acctbal.pers_id = tprmd.pers_id
insert in tp_rmd_rpt select prsn_id aansluit, pers_id, ss_nr, fst_nm, mid_nm, last_nm „omvat“, „omvat“ sfx_cd, brth_dt, deth_dt, RMD_dt from #tmp_rmd_flag where RMD_flag = --3486
RETURN END
|