Ho una procedura immagazzinata come segue. La mia domanda è può io usa le tabelle del #tmp_ (ex #tmp_initial_RMD_candidates) per inserire i dati intermedi ed allora per caricare i dati finali in una tabella “del tp_„ che sarà usata per generare un rapporto? il If del ********* del del ********** del del ********** del del ********** del del ********** del del ********** del del ********** del del ************************** del ESISTE (SELEZIONARE * A PARTIRE DA INFORMATION_SCHEMA.TABLES DOVE TABLE_SCHEMA = “dbo„ E TABLE_NAME = “tp_rmd_rpt ") tp_rmd_rpt GO IF della TABELLA di GOCCIA del ESISTE (nome PRESCELTO da sysindexes DOVE nome = “ix01„) INDICE tp_rmd_rpt.ix01 GO di GOCCIA del --cadere la tabella dbo.tp_rmd_rpt (prsn_id int, pers_id int, ss_nr del tp_rmd_rpt create della tabella del del del varchar (9), fst_nm del varchar (20), mid_nm del varchar (20), last_nm del varchar (20), carbone dello sfx_cd del (4), datetime del brth_dt del , datetime del deth_dt del , -- invecchiare il decimale (4.1), l'indice ix01 del GO create del datetime del RMD_dt) sull'oggetto del ****** del GO /del tp_rmd_rpt (pers_id): StoredProcedure [dbo]. data dello scritto [del csp_rmd_rpt]: 06/02/2010 di 07:24: 22 oggetto del * del **** del del ********** del del ********** del del ********** del del ********** del del ********** del del ********** del del ********** del del ************************** del ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /* : Il */ IF del **** del del ********** del del ********** del del ********** del del ********** del del ********** del del ********** del del ********** del del ************************** del di procedura immagazzinata dbo.csp_rmd_rpt ESISTE (SELEZIONARE * A PARTIRE da INFORMATION_SCHEMA.ROUTINES DOVE ROUTINE_SCHEMA = “dbo„ E ROUTINE_NAME = “@rpt_run_dt = busn_dt del datetime select del @rpt_run_dt di PROCEDURA dbo.csp_rmd_rpt
as
begin
declare di PROCEDURA dbo.csp_rmd_rpt GO
CREATE di GOCCIA del ") del csp_rmd_rpt da be_busn_dt
Select be_prsn.prsn_id, pers_id, fst_nm, mid_nm, last_nm, sfx_cd, brth_dt, deth_dt, convert (decimale (5.2), (CASE QUANDO DATEPART (d, getdate ()) >= DATEPART (d, brth_dt) ALLORA (DATEDIFF (m., brth_dt, getdate ()) /12.0) ALTRIMENTI ((DATEDIFF (m., brth_dt, getdate ()) - 1)/12.0) ESTREMITÀ)) invecchiare, (caso quando giorno (dateadd (mese, ((70*12) +6), brth_dt)) = 1 allora dateadd altro del del dateadd (mese, ((70*12) +6), brth_dt) (giorno, di un giorno (dateadd (mese, ((70*12) +6), brth_dt)), dateadd (mese, 1, dateadd (mese, ((70*12) +6), brth_dt)))be_prsn, be_empt_hist, be_mbr_acct, acct_stat_vw, be_mbr Where be_prsn.prsn_id = be_mbr.prsn_id e be_empt_hist.mbr_id = be_mbr_acct.mbr_id del From del #tmp_initial_RMD_candidates di RMD_dt into di conclusione del ) e be_empt_hist.mbr_id = be_mbr.mbr_id e be_mbr_acct.acct_id = acct_stat_vw.acct_id e be_mbr_acct.mbr_id = be_mbr.mbr_id e be_empt_hist.end_dt (a.max_end_dt da (mbr_id prescelto, max_end_dt massimo (del end_dt) dal di be_empt_hist dove mbr_id = gruppo di be_mbr.mbr_id da mbr_id) nel a dove a.max_end_dt! = “2999-12-31„) il e il pers_id NON È NULL e <> 3 e DATEDIFF (MESE, brth_dt, CONVERTITO (DATETIME del pln_id, '04.15. '+ FUSO (CASO QUANDO MESE (getdate ()) > 4 ALLORA ANNI (getdate ()) + 1 ANNO ALTRO (getdate ()) ESTREMITÀ COME varchar)) ) > 846 e acct_stat_vw.eff_dt = ( SELEZIONA il di max (x.eff_dt) A PARTIRE da acct_stat_vw COME x in DOVE x.acct_id = acct_stat_vw.acct_id E x.acct_id = be_mbr_acct.acct_id e x.acct_stat_cd (") “di ATTO„, “di ATTESA„, “di DTH e convertito (carbone (10), x.eff_dt, 111) + streptococco (x.acct_id) = ( massimo (convertito (streptococco del carbone (10), x2.eff_dt, 111) + (x2.acct_id)) dal where del acct_stat_vw x2 del e acct_stat_vw.acct_stat_cd del di x2.acct_id = di acct_stat_vw.acct_id e di x2.acct_id = di be_mbr_acct.acct_id )) (“l'ATTO„, “ATTENDE„, “DTH ") nel group da be_prsn.prsn_id, pers_id del , ss_nr del , fst_nm del , mid_nm del , last_nm del , sfx_cd del , brth_dt del , deth_dt del , (CASO QUANDO DATEPART (d, getdate ()) >= DATEPART (d, brth_dt) ALLORA (DATEDIFF (m., brth_dt, getdate ()) /12.0) ALTRIMENTI ((DATEDIFF (m., brth_dt, getdate ()) - 1)/12.0) ESTREMITÀ) --rimuovere questo dalla lima finale poichè l'età non sarà visualizzata nel file. , (caso quando giorno (dateadd (mese, ((70*12) +6), brth_dt)) =1 allora dateadd altro del del del dateadd (mese, ((70*12) +6), brth_dt) (giorno, di un giorno (dateadd (mese, ((70*12) +6), brth_dt)), dateadd (mese, 1, dateadd (mese, ((70*12) +6), brth_dt)))
dell'estremità del )--ottenere il initial_rmd_accts.pers_id del acct_bal select, il initial_rmd_accts.deth_dt del , il sum ( vw.rglr_int_item_amt+ vw.var_int_item_amt + vw.unit_int_item_amt del 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+ di vw.pre_tax_cntrb+) come initial_rmd_accts #acct_bal del #tmp_initial_RMD_candidates del from del tot_acct_bal into, il vw del mam_acct_bal_vw, il be_prsn a, il be_mbr b, il where del be_mbr_acct c a.pers_id = initial_rmd_accts.pers_id e a.prsn_id = initial_rmd_accts.prsn_id e il di a.prsn_id = di b.prsn_id e il di b.mbr_id = di c.mbr_id e il di c.acct_id = di vw.acct_id e il <> 3 group di c.pln_id da initial_rmd_accts.pers_id, il pers_id del initial_rmd_accts.deth_dt
select tprmd.pers_id, il deth_dt del acctbal.deth_dt, il acctbal.tot_acct_bal, tprmd.prsn_id, il fst_nm del tprmd.fst_nm, il mid_nm del tprmd.mid_nm, il last_nm del tprmd.last_nm, lo sfx_cd del tprmd.sfx_cd, il brth_dt del tprmd.brth_dt, il tprmd.RMD_dt RMD_dt, il case quando acctbal.tot_acct_bal = 0.0 e acctbal.deth_dt non è nullo allora “esclude„ il quando (acctbal.tot_acct_bal = 0.0 e acctbal.deth_dt è nullo) o (acctbal.tot_acct_bal > 0.0 e acctbal.deth_dt è nullo) o (acctbal.tot_acct_bal > 0.0 e acctbal.deth_dt non è nullo) allora “comprendere„ l'estremità come tprmd del tp_rmd_rpt del from del #tmp_rmd_flag del into di RMD_flag unisce il acctbal su acctbal.pers_id = tprmd.pers_id
insert nel prsn_id, il pers_id, il ss_nr, il fst_nm, il mid_nm, il last_nm del select del tp_rmd_rpt, il sfx_cd, il brth_dt, il deth_dt, il where RMD_flag del #tmp_rmd_flag del RMD_dt from = “include„ --3486
RETURN END
class= del
|