Fråga : Lagrat tillvägagångssätt för SQL-server

Jag har ett lagrat tillvägagångssätt som följer. Mitt ifrågasätta är kan mig använder #tmp_ bordlägger (före detta#tmp_initial_RMD_candidates) för att sätta in mellanliggande data, och därefter att ladda finaldatan i ”en tp_” bordlägga att ska var van vid frambringar en rapport? för ************************** för

If för ********* för för ********** för för ********** för för ********** för för ********** för för ********** för för ********** FINNS (VÄLJ * FRÅN INFORMATION_SCHEMA.TABLES VAR TABLE_SCHEMA = ”dboen” OCH TABLE_NAME = ”tp_rmd_rpt”)
TAPPAR BORDLÄGGER tp_rmd_rpt
GO
IF FINNS (VÄLJ känt FRÅN sysindexes
, VAR känt = ”ix01”),
TAPPAR INDEXET tp_rmd_rpt.ix01
GO
--tappa bordlägger tp_rmd_rpt
create bordlägger dbo.tp_rmd_rpt
, prsn_id int, pers_id int, varchar ss_nr för
(9), varchar fst_nm för
(20), varchar mid_nm för
(20), varchar last_nm för
(20), sfx_cdrödingen för
(4), brth_dtdatetime för
, deth_dtdatetime för
,
(för
för
-- åldras det decimal- (4.1), för
RMD_dt för datetime
) för
GO
create indexet ix01 på ****** för
GO
/för tp_rmd_rpt (pers_id) anmärker:  StoredProcedure [dbo]. skriva daterar: [csp_rmd_rpt] 06/02/2010 07:24: 22 för ************************** för ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*

* för **** för för ********** för för ********** för för ********** för för ********** för för ********** för för ********** för för ********** anmärker:            
*/
IF för **** för för ********** för för ********** för för ********** för för ********** för för ********** för för ********** för för ********** för för ************************** för
för det lagrade tillvägagångssättet dbo.csp_rmd_rpt FINNS (VÄLJ * FRÅN INFORMATION_SCHEMA.ROUTINES VAR ROUTINE_SCHEMA = ”dboen” OCH ROUTINE_NAME = ”csp_rmd_rpt”)
TAPPAR @rpt_run_dt = busn_dt för datetime
select för @rpt_run_dt för TILLVÄGAGÅNGSSÄTT dbo.csp_rmd_rpt

as

begin

declare för TILLVÄGAGÅNGSSÄTT dbo.csp_rmd_rpt
GO

CREATE från be_busn_dt

Select
be_prsn.prsn_id,
pers_id,
fst_nm,
mid_nm,
last_nm,
sfx_cd,
brth_dt,
deth_dt, decimal-
convert ((5.2), (CASE, NÄR DATEPART (D, getdate ()) >= DATEPART (D, brth_dt) DÄREFTER (DATEDIFF (M, brth_dt, getdate ()) /12.0)
ANNARS ((DATEDIFF (M, brth_dt, getdate ()) - 1)/12.0) AVSLUTAR)),  åldras
(fall, när dagen (dateadd (månad, ((70*12) +6), brth_dt)), = 1 därefter dateadd (månad, ((70*12) +6), dateadd för
för brth_dt) annan (dag, 1 - dagen (dateadd (månad, ((70*12) +6), brth_dt)), dateadd (månad, 1, dateadd (månad, ((70*12) +6), brth_dt)))
avslutar) be_prsn, be_empt_hist, be_mbr_acct, acct_stat_vw, be_mbr
Where be_prsn.prsn_id = be_mbr.prsn_id
och be_empt_hist.mbr_id = be_mbr_acct.mbr_id
för
From för RMD_dt
into #tmp_initial_RMD_candidates och be_empt_hist.mbr_id = be_mbr.mbr_id
och be_mbr_acct.acct_id = acct_stat_vw.acct_id
och be_mbr_acct.mbr_id = be_mbr.mbr_id
och be_empt_hist.end_dt i (vald a.max_end_dt
från (vald mbr_id, max max_end_dt (för end_dt) från be_empt_hist
var mbr_id = gruppen för be_mbr.mbr_id
vid mbr_id) a
var a.max_end_dt! = ”2999-12-31”)
och pers_id ÄR INTE NULL
och pln_id<> 3
och DATEDIFF (MÅNADEN, brth_dt, OMVÄNDEN (DATETIME, '04.15. '+ CAST (FALLET, NÄR MÅNADEN (getdate ()) > 4 DÄREFTER ÅR (getdate ()) + 1 ANNAT ÅR (getdate ()) AVSLUTA SOM varchar)), ) > 846
och acct_stat_vw.eff_dt =
(
VÄLJER
för max (x.eff_dt) FRÅN acct_stat_vw SOM x
VAR x.acct_id = acct_stat_vw.acct_id OCH x.acct_id = be_mbr_acct.acct_id
och x.acct_stat_cd i (”AGERA”, ”VÄNTAN”, ”DTH”)
och omvänden (röding (10), x.eff_dt, 111) + str (x.acct_id) = str för
(max vald
(omvänden (rödingen (10), x2.eff_dt, 111) + (x2.acct_id))
från where
för acct_stat_vw x2
för

och acct_stat_vw.acct_stat_cd för
för x2.acct_id = för acct_stat_vw.acct_id och för x2.acct_id = för be_mbr_acct.acct_id
)) i (”AGERA”, ”VÄNTAN”, ”DTH”),
group vid be_prsn.prsn_id, pers_id för
, ss_nr för
, fst_nm för
, mid_nm för
, last_nm för
, sfx_cd för
, brth_dt för
, deth_dt för
,
(FALL, NÄR DATEPART (D, getdate ()) >= DATEPART (D, brth_dt) DÄREFTER (DATEDIFF (M, brth_dt, getdate ()) /12.0)
ANNARS ((DATEDIFF (M, brth_dt, getdate ()) - 1)/12.0) AVSLUTAR), --ta bort detta från final sparar, som åldern ska för att inte visas i finalen file.
, (fallet, när dagen (dateadd (månad, ((70*12) +6), brth_dt)) därefter dateadd =1 (månad, ((70*12) +6), dateadd för
för
för brth_dt) annan (dag, 1 - dagen (dateadd (månad, ((70*12) +6), brth_dt)), dateadd (månad, 1, dateadd (månad, ((70*12) +6), brth_dt)))
avslutar)

--få
initial_rmd_accts.pers_id för acct_bal
select,
initial_rmd_accts.deth_dt för ,
sum (
vw.rglr_int_item_amt+
vw.var_int_item_amt +
vw.unit_int_item_amt för 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+) som initial_rmd_accts för #tmp_initial_RMD_candidates för
from för tot_acct_bal
into #acct_bal, mam_acct_bal_vwvw, be_prsn a, be_mbr b,
where för be_mbr_acct c a.pers_id = initial_rmd_accts.pers_id
och a.prsn_id = initial_rmd_accts.prsn_id
och b.prsn_id- = a.prsn_id-
och c.mbr_id- = b.mbr_id-
och vw.acct_id- = c.acct_id-
och c.pln_id-<> 3
group vid initial_rmd_accts.pers_id, pers_id för initial_rmd_accts.deth_dt

select
tprmd.pers_id, deth_dt för
acctbal.deth_dt,
acctbal.tot_acct_bal,
tprmd.prsn_idprsn_id, fst_nm för
tprmd.fst_nm, mid_nm för
tprmd.mid_nm, last_nm för
tprmd.last_nm, sfx_cd för
tprmd.sfx_cd, brth_dt för
tprmd.brth_dt,
tprmd.RMD_dt RMD_dt,
case, när acctbal.tot_acct_bal = 0.0 och acctbal.deth_dt inte är ogiltig därefter ”, uteslutar”
, när (acctbal.tot_acct_bal = 0.0 och acctbal.deth_dt är ogiltig), eller (acctbal.tot_acct_bal > 0.0 och acctbal.deth_dt är ogiltig), eller (acctbal.tot_acct_bal > 0.0 och acctbal.deth_dt inte är ogiltig), därefter ”inkludera”, avslutar som tprmd för tp_rmd_rpt för
from för #tmp_rmd_flag för RMD_flag
into sammanfogar #acct_bal acctbal
på acctbal.pers_id = tprmd.pers_id

insert in i
prsn_id,
pers_id,
ss_nr,
fst_nm,
mid_nm,
last_nm för tp_rmd_rpt
select,
sfx_cd,
brth_dt,
deth_dt, #tmp_rmd_flag
where RMD_flag för
RMD_dt
from = ”inkluderar”, --3486

RETURN
END
" klar "

Svar : Lagrat tillvägagångssätt för SQL-server

behaga tillfogar det nedanfört fodrar och kontrollerar

ingen global (insida) 1 har kontakt
sysoptanslutningstillstånd-vpn
ta fram-lista ingen-nat fördjupad tillståndip 10.200.1.0 255.255.255.0 172.25.20.0 255.255.255.0
ta fram-lista ingen-nat fördjupad tillståndip 10.200.1.0 255.255.255.0 172.25.30.0 255.255.255.0
nat (insida) 0 ta fram-listar ingen-nat
Andra lösningar  
 
programming4us programming4us