帮助摆脱查询中的临时表。 [英] Help in getting rid of temp tables in a query.

查看:61
本文介绍了帮助摆脱查询中的临时表。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

全部,



我有以下查询,它使用多个临时表:



  IF   OBJECT_ID '   RPTUSR.SP_Track_Record2' IS   NOT   NULL  

BEGIN

< span class =code-keyword> DROP PROCEDURE RPTUSR.SP_Track_Record2

IF OBJECT_ID ' RPTUSR.SP_Track_Record2' IS NOT NULL

PRINT ' <<<失败的删除程序RPTUSR.SP_Track_Record2>>>'

ELSE

PRINT ' <<<删除程序RPTUSR.SP_Track_Record2>>>'

END

go

CREATE PROCEDURE SP_Track_Record2



AS

BEGIN



set compatibility_mode on

选择 a.POLICY_NO,a.CERTIFICATE_NO,a.RENL_CERT_NO,a.EFF_DT_SEQ_NO,

a .remarks_txt_id,max(b.text_seq_no)text_seq_no,

text_seq_no1 = case 何时 count(*)> 1 然后 max(b.text_seq_no)-1 else 0 end ,

text_seq_no2 = case count(*)> 2 然后 max(b.text_seq_no)-2 else 0 end

text_seq_no3 = case count(*)> 3 然后 max(b.text_seq_no) - 3 else 0 end

text_eff_date

into #GetRemarkSeqNo

来自

AUM_Reporting..Tpolicy a noholdlock,

AUM_Reporting..ttext b noholdlock,

G3 .. Track_Record_REPORT dd( index sla_policy_indx)noholdlock

其中

- dd.accounting_period ='2010年7月31日'

< span class =code-comment> - b.text_type_cd =4and - (由amol041010评论)

b.text_id = a.remarks_txt_id

AND dd.POLICY_NO = a.POLICY_NO

AND dd.CERTIFICATE_NO = a.CERTIFICATE_NO

AND dd.RENL_CERT_NO = a.RENL_CERT_NO

AND dd.EFF_DT_SEQ_NO = a.EFF_DT_SEQ_NO

convert smalldatetime , convert varchar ,text_eff_date,< span class =code-digit> 111 ))> = convert smalldatetime convert varchar ,dd.WIP_CREATION_DT, 111 ))

a.pol_office_cd = ' 064001'

group by a.POLICY_NO,a.CERTIFICATE_NO,a.RENL_CERT_NO,a.EFF_DT_SEQ_NO,a.remarks_txt_id,b.text_eff_date



- - 47045行受影响。



创建 INDE X WIP3in1_GetRemarkSeqNo ON #GetRemarkSeqNo(remarks_txt_id,text_seq_no,text_seq_no1,text_seq_no2,text_seq_no3)



- drop table#GetRemark3

SELECT #getremarkseqno.POLICY_NO,#getremarkseqno.CERTIFICATE_NO,#getremarkseqno.RENL_CERT_NO,#getremarkseqno.EFF_DT_SEQ_NO,a.text_detail AS User_Remarks,a.text_type_cd ,#getremarkseqno.text_eff_date

into #GetRemark

FROM #getremarkseqno,AUM_Reporting..ttext

其中#getremarkseqno.remarks_txt_id = a.text_id

AND #getremarkseqno.text_seq_no = a.text_seq_no

- 和a.text_type_cd =4



- CREATE INDEX WIP3in1_GetRemark ON #GetRemark(WIP_NO)

- GetRemark



- GetRemark1

SELECT #getremarkseqno.POLICY_NO,#getremarkseqno.CERTIFICATE_NO,#getremarkseqno.RENL_CERT_NO,#getremarkseqno.EFF_DT_SEQ_NO,a.text_detail AS User_Remarks1,a.text_type_cd,#getremarkseqno.text_eff_date

into #GetRemark1

FROM #getremarkseqno ,AUM_Reporting..ttext

其中#getremarkseqno.text_seq_no1 = a.text_seq_no

AND #getremarkseqno.remarks_txt_id = a.text_id

- 和a.text_type_cd =4



- CREATE INDEX WIP3in1_GetRemark1 ON#GetRemark1(WIP_NO )

- GetRemark1



- GetRemark2

< span class =code-keyword> SELECT #getremarkseqno.POLICY_NO,#getremarkseqno.CERTIFICATE_NO,#getremarkseqno.RENL_CERT_NO,#getremarkseqno.EFF_DT_SEQ_NO,a.text_detail AS User_Remarks2,a.text_type_cd,#getremarkseqno.text_eff_dat e

into #GetRemark2

FROM # getremarkseqno,AUM_Reporting..ttext

其中#getremarkseqno.text_seq_no2 = a.text_seq_no

AND #getremarkseqno.remarks_txt_id = a.text_id

- 和a.text_type_cd =4



- CREATE INDEX WIP3in1_GetRemark2 ON#GetRemark2(WIP_NO)

- GetRemark2





- < span class =code-comment> UPDATE G3..Track_Record_REPORT

- SET User_Remarks = b.User_Remarks



/ * Adaptive Server扩展了以下语句中的所有'*'元素* / 选择 a.policy_no,a.certificate_no,a .renl_cert_no,a.eff_dt_seq_no,a.branch_off_cd,a.prdr_branch_sub_cd,a.Branch,a.product_name,a.major_line_cd,a.ProductGroup,a.pol_incept_date,a.pol_exp_date,a.ins_name_client_no,a.ClientName,a.Client_city_name ,a.pol_status_cd,a.record_type_desc,a.policy_counter,a.accounting_period,a.ProducerName,a.PremiumAmount,a.o_prem_amt,a.SUM_INSURED,a.record_type_cd,a.producer_cd,a.EntryDate,a.EntryMonth,a .EntryDay,a.EntryWeek,a.InceptionMonth,a.InceptionDay,a.InceptionWeek,a.CoverNoteNumber,a.Cover_Note_date,a.Cov_nt_iss_month,a.Application_no,a。 TIMESTAMP ,a.watts_policy_no,a.Producer_type,a.times_renewed_cnt,a.Producer_Category,a .receipt_date,a.rcpt_branch_cd,a.rcpt_branch_sub_cd,a.receipt_no,a.product_cd,a.new_producer_cd,a.watts_issue_dt,a.Channel,a.prem_eff_date,a.orig_curr_cd,a.LOB,a.devel_det,a.PIN ,a.WIP_NO,a.POL_TYPE,a.APPLICATION_RECEIVED_DT,a.WIP_CREATION_DT,a.POL_PRINT_DT,a.POL_DELIVERY_DT,a.QC_STATUS_CD,a.QC_REMARK_ID,a.QC_USERID_CD,a.QC_TIMESTAMP,a.QC_TIMES_REJECT,a.pol_chnge_eff_date,a .tpol_rcpt_dets,a.REFUNDEE_ID,b.User_Remarks,b.text_eff_date into #Track_Record_report

FROM #GetRemark B,G3..Track_Record_REPORT A

WHERE b.POLICY_NO = a.POLICY_NO

AND b.CERTIFICATE_NO = a.CERTIFICATE_NO

AND b.RENL_CERT_NO = a.RENL_CERT_NO

AND b.EFF_DT_SEQ_NO = a.EFF_DT_SEQ_NO

- 和accounting_period ='2010年7月31日'





- 更新G3..Track_Record_REPORT

- SET User_Remarks1 = b.User_Remarks1



/ * Adaptive Server扩展了所有' *'以下语句中的元素* / 插入 进入 #Track_Record_report

选择 a.policy_no,a.certificate_no,a.renl_cert_no,a.eff_dt_seq_no,a.branch_off_cd,a.prdr_branch_sub_cd,a.Branch,a.product_name, a.major_line_cd,a.ProductGroup,a.pol_incept_date,a.pol_exp_date,a.ins_name_client_no,a.ClientNam e,a.Client_city_name,a.pol_status_cd,a.record_type_desc,a.policy_counter,a.accounting_period,a.ProducerName,a.PremiumAmount,a.o_prem_amt,a.SUM_INSURED,a.record_type_cd,a.producer_cd,a.EntryDate, a.EntryMonth,a.EntryDay,a.EntryWeek,a.InceptionMonth,a.InceptionDay,a.InceptionWeek,a.CoverNoteNumber,a.Cover_Note_date,a.Cov_nt_iss_month,a.Application_no,a。 TIMESTAMP ,a.watts_policy_no,a.Producer_type,a.times_renewed_cnt,a.Producer_Category,a.receipt_date,a.rcpt_branch_cd,a.rcpt_branch_sub_cd,a.receipt_no,a.product_cd,a.new_producer_cd,a。 watts_issue_dt,a.Channel,a.prem_eff_date,a.orig_curr_cd,a.LOB,a.devel_det,a.PIN,a.WIP_NO,a.POL_TYPE,a.APPLICATION_RECEIVED_DT,a.WIP_CREATION_DT,a.POL_PRINT_DT,a.POL_DELIVERY_DT, a.QC_STATUS_CD,a.QC_REMARK_ID,a.QC_USERID_CD,a.QC_TIMESTAMP,a.QC_TIMES_REJECT,a.pol_chnge_eff_date,a.tpol_rcpt_dets,a.REFUNDEE_ID,b.User_Remarks1,b.tex t_eff_date

FROM #GetRemark1 B,G3..Track_Record_REPORT A

WHERE b.POLICY_NO = a.POLICY_NO

AND b.CERTIFICATE_NO = a.CERTIFICATE_NO

AND b.RENL_CERT_NO = a.RENL_CERT_NO

AND b.EFF_DT_SEQ_NO = a.EFF_DT_SEQ_NO

- 和accounting_period ='2010年7月31日'



- 更新G3..Track_Record_REPORT

- SET User_Remarks2 = b.User_Remarks2



/ * A daptive Server已在以下语句中扩展了所有'*'元素* / insert 进入# Track_Record_report

选择 a.policy_no,a.certificate_no,a.renl_cert_no,a.eff_dt_seq_no,a.branch_off_cd,a.prdr_branch_sub_cd,a。 Branch,a.product_name,a.major_line_cd,a.ProductGroup,a.pol_incept_date,a.pol_exp_date,a.ins_name_client_no,a.ClientName,a.Client_city_name,a.pol_status_cd,a.record_type_desc,a.policy_counter,a.accounting_period, a.ProducerName,a.PremiumAmount,a.o_prem_amt,a.SUM_INSURED,a.record_type_cd,a.producer_cd,a.EntryDate,a.EntryMonth,a.EntryDay,a.EntryWeek,a.InceptionMonth,a.InceptionDay,a。 InceptionWeek,a.CoverNoteNumber,a.Cover_Note_date,a.Cov_nt_iss_month,a.Application_no,a。 TIMESTAMP ,a.watts_policy_no,a.Producer_type,a.times_renewed_cnt,a。 Producer_Category,a.receipt_date,a.rcpt_branch_cd ,a.rcpt_branch_sub_cd,a.receipt_no,a.product_cd,a.new_producer_cd,a.watts_issue_dt,a.Channel,a.prem_eff_date,a.orig_curr_cd,a.LOB,a.devel_det,a.PIN,a.WIP_NO,a .POL_TYPE,a.APPLICATION_RECEIVED_DT,a.WIP_CREATION_DT,a.POL_PRINT_DT,a.POL_DELIVERY_DT,a.QC_STATUS_CD,a.QC_REMARK_ID,a.QC_USERID_CD,a.QC_TIMESTAMP,a.QC_TIMES_REJECT,a.pol_chnge_eff_date,a.tpol_rcpt_dets,a.REFUNDEE_ID ,b.User_Remarks2,b.text_eff_date

FROM #GetRemark2 B,G3..Track_Record_REPORT A

WHERE b.POLICY_NO = a.POLICY_NO

AND b.CERTIFICATE_NO = a.CERTIFICATE_NO

AND b.RENL_CERT_NO = a.RENL_CERT_NO

AND b.EFF_DT_SEQ_NO = a.EFF_DT_SEQ_NO

- 和accounting_period ='2010年7月31日'







IF OBJECT_ID ' tempdb..Track_Record' IS NULL

BEGIN

DROP TABLE tempdb..Track_Record

END





/ * Adaptive Server扩展了以下语句中的所有'*'元素* / 选择#Track_Record_report.policy_no, #Track_Record_report.certificate_no,#Track_Record_report.renl_cert_no,#Track_Record_report.eff_dt_seq _No,#Track_Record_report.branch_off_cd,#Track_Record_report.prdr_branch_sub_cd,#Track_Record_report.Branch,#Track_Record_report.product_name,#Track_Record_report.major_line_cd,#Track_Record_report.ProductGroup,#Track_Record_report.pol_incept_date,#Track_Record_report.pol_exp_date,#Track_Record_report.ins_name_client_no,#Track_Record_report。 CLIENTNAME,#Track_Record_report.Client_city_name,#Track_Record_report.pol_status_cd,#Track_Record_report.record_type_desc,#Track_Record_report.policy_counter,#Track_Record_report.accounting_period,#Track_Record_report.ProducerName,#Track_Record_report.PremiumAmount,#Track_Record_report.o_prem_amt,#Track_Record_report.SUM_INSURED,#Track_Record_report。 record_type_cd,#Track_Record_report.producer_cd,#Track_Record_report.EntryDate,#Track_Record_report.EntryMonth,#Track_Record_report.EntryDay,#Track_Record_report.EntryWeek,#Track_Record_report.InceptionMonth,#Track_Record_report.InceptionDay,#Track_Record_report.InceptionWeek ,#Track_Record_report.CoverNoteNumber,#Track_Record_report.Cover_Note_date,#Track_Record_report.Cov_nt_iss_month,#Track_Record_report.Application_no,#Track_Record_report。 TIMESTAMP ,#Track_Record_report.watts_policy_no,#Track_Record_report.Producer_type, #Track_Record_report.times_renewed_cnt,#Track_Record_report.Producer_Category,#Track_Record_report.receipt_date,#Track_Record_report.rcpt_branch_cd,#Track_Record_report.rcpt_branch_sub_cd,#Track_Record_report.receipt_no,#Track_Record_report.product_cd,#Track_Record_report.new_producer_cd,#Track_Record_report.watts_issue_dt,#Track_Record_report.Channel, #Track_Record_report.prem_eff_date,#Track_Record_report.orig_curr_cd,#Track_Record_report.LOB,#Track_Record_report.devel_det,#Track_Record_report.PIN,#Track_Record_report.WIP_NO,#Track_Record_report.POL_TYPE,#Track_Record_report.APPLICATION_RECEIVED_DT,#Track_Record_report.WIP_CREATION_DT,#Track_Record_report.POL_PRINT_DT, #Track_R ecord_report.POL_DELIVERY_DT,#Track_Record_report.QC_STATUS_CD,#Track_Record_report.QC_REMARK_ID,#Track_Record_report.QC_USERID_CD,#Track_Record_report.QC_TIMESTAMP,#Track_Record_report.QC_TIMES_REJECT,#Track_Record_report.pol_chnge_eff_date,#Track_Record_report.tpol_rcpt_dets,#Track_Record_report.REFUNDEE_ID,#Track_Record_report.User_Remarks,# Track_Record_report.text_eff_date into tempdb..Track_Record from #Track_Record_report



delete 来自 tempdb..Track_Record 其中 user_remarks 喜欢 ' %clean%'



end











go

IF OBJECT_ID ' RPTUSR.SP_Track_Record2' IS NOT NULL

PRINT ' <<<创建过程RPTUSR.SP_Track_Record2>>>'

ELSE

PRINT ' <<<失败的创建程序RPTUSR.SP_Track_Record2>>>'





现在我想摆脱所有暂时的上面查询中的表:



下面是我编写的查询,但它不返回任何行。有人可以帮忙吗?



我尝试过:



选择a.policy_no,a.certificate_no,a.renl_cert_no,a.eff_dt_seq_no,a.branch_off_cd,a.prdr_branch_sub_cd,a.Branch,a.product_name,a.major_line_cd,

a .ProductGroup,a.pol_incept_date,a.pol_exp_date,a.ins_name_client_no,a.ClientName,a.Client_city_name,a.pol_status_cd,a.record_type_desc,

a.policy_counter,a.accounting_period,a.ProducerName ,a.PremiumAmount,a.o_prem_amt,a.SUM_INSURED,a.record_type_cd,a.producer_cd,a.EntryDate,

a.EntryMonth,a.EntryDay,a.EntryWeek,a.InceptionMonth,a .InceptionDay,a.InceptionWeek,a.CoverNoteNumber,a.Cover_Note_date,a.Cov_nt_iss_month,

a.Application_no,a.TIMESTAMP,a.watts_policy_no,a.Producer_type,a.times_renewed_cnt,a.Producer_Category ,a.receipt_date,a.rcpt_branch_cd,

a.rcpt_branch_sub_cd,a.receipt_no,a.product_cd,a.new_producer_cd,a.watts_issue_dt,a.Channel,a.prem_ef f_date,a.orig_curr_cd,a.LOB,a.devel_det,

a.PIN,a.WIP_NO,a.POL_TYPE,a.APPLICATION_RECEIVED_DT,a.WIP_CREATION_DT,a.POL_PRINT_DT,a.POL_DELIVERY_DT, a.QC_STATUS_CD,a.QC_REMARK_ID,

a.QC_USERID_CD,a.QC_TIMESTAMP,a.QC_TIMES_REJECT,a.pol_chnge_eff_date,a.tpol_rcpt_dets,a.REFUNDEE_ID,b.text_eff_date

--b.User_Remarks1,b.text_eff_date,a.Entry



FROM

(选择x.POLICY_NO,x.CERTIFICATE_NO,x .RENL_CERT_NO,x.EFF_DT_SEQ_NO,

x.remarks_txt_id,max(y.text_seq_no)text_seq_no,

text_seq_no1 =当count(*)> 1然后是max(y)时的情况.text_seq_no)-1 else 0 end,

text_seq_no2 = count(*)> 2的情况然后max(y.text_seq_no)-2 else 0 end,

text_seq_no3 = count(*)> 3时的情况,然后是max(y.text_seq_no)-3 else 0 end,

text_eff_date



来自

AUM_Reporting..Tpolicy x noholdlock,

AUM_Reporting..ttext y noholdlock,

S3REPORTS..Track_Record dd(index sla_policy_indx)noholdlock

其中

- dd.accounting_period ='2010年7月31日'

- b.text_type_cd =4和 - (评论人amol041010)

y.text_id = x.remarks_txt_id

AND dd.POLICY_NO = x.POLICY_NO

AND dd.CERTIFICATE_NO = x.CERTIFICATE_NO

AND dd.RENL_CERT_NO = x.RENL_CERT_NO

AND dd.EFF_DT_SEQ_NO = x.EFF_DT_SEQ_NO

和convert(smalldatetime,convert(varchar,text_eff_date, 111))> =转换(smalldatetime,convert(varchar,dd.WIP_CREATION_DT,111))

和x.pol_office_cd ='064001'

group by x.POLICY_NO ,x.CERTIFICATE_ NO,x.RENL_CERT_NO,x.EFF_DT_SEQ_NO,x.remarks_txt_id,y.text_eff_date)



B,



S3REPORTS..Track_Record A,



AUM_Reporting..ttext C



WHERE b.POLICY_NO = a.POLICY_NO

AND b.CERTIFICATE_NO = a.CERTIFICATE_NO

AND b.RENL_CERT_NO = a.RENL_CERT_NO

AND b.EFF_DT_SEQ_NO = a。 EFF_DT_SEQ_NO



AND b.remarks_txt_id = C.text_id

AND b.text_seq_no = C.text_seq_no
AND b.text_seq_no1 = C.text_seq_no

AND b.text_seq_no2 = C.text_seq_no

解决方案

SQL Server中的临时表简介 [ ^ ]



那里有一节关于删除临时表的内容

All,

I have the below query which makes use of multiple temp tables :

IF OBJECT_ID('RPTUSR.SP_Track_Record2') IS NOT NULL

BEGIN

    DROP PROCEDURE RPTUSR.SP_Track_Record2

    IF OBJECT_ID('RPTUSR.SP_Track_Record2') IS NOT NULL

        PRINT '<<< FAILED DROPPING PROCEDURE RPTUSR.SP_Track_Record2 >>>'

    ELSE

        PRINT '<<< DROPPED PROCEDURE RPTUSR.SP_Track_Record2 >>>'

END

go

CREATE PROCEDURE SP_Track_Record2

 

AS

BEGIN

 

                set compatibility_mode on

                select a.POLICY_NO,a.CERTIFICATE_NO,a.RENL_CERT_NO,a.EFF_DT_SEQ_NO,

                a.remarks_txt_id ,max (b.text_seq_no) text_seq_no ,

                text_seq_no1 = case when count(*) >1 then max (b.text_seq_no) -1 else 0 end,

                text_seq_no2 = case when count(*) >2 then max (b.text_seq_no) -2 else 0 end,

                text_seq_no3 = case when count(*) >3 then max (b.text_seq_no) -3 else 0 end,

                text_eff_date

                into #GetRemarkSeqNo

                from

                AUM_Reporting..Tpolicy a noholdlock,

                AUM_Reporting..ttext b noholdlock,

                G3..Track_Record_REPORT dd(index sla_policy_indx) noholdlock

                where

--             dd.accounting_period = 'Jul 31 2010'

                -- b.text_type_cd="4"   and  --(commented by amol041010)

                b.text_id = a.remarks_txt_id

                AND dd.POLICY_NO = a.POLICY_NO

                AND dd.CERTIFICATE_NO = a.CERTIFICATE_NO

                AND dd.RENL_CERT_NO = a.RENL_CERT_NO

                AND dd.EFF_DT_SEQ_NO = a.EFF_DT_SEQ_NO

                and convert(smalldatetime,convert(varchar,text_eff_date,111))>= convert(smalldatetime,convert(varchar,dd.WIP_CREATION_DT,111))

                and a.pol_office_cd = '064001'

                group by a.POLICY_NO,a.CERTIFICATE_NO,a.RENL_CERT_NO,a.EFF_DT_SEQ_NO,a.remarks_txt_id,b.text_eff_date

 

--47045 row(s) affected.

 

                CREATE INDEX WIP3in1_GetRemarkSeqNo  ON  #GetRemarkSeqNo (remarks_txt_id,text_seq_no,text_seq_no1,text_seq_no2,text_seq_no3 )

 

                --drop table #GetRemark3

                SELECT #getremarkseqno.POLICY_NO,#getremarkseqno.CERTIFICATE_NO,#getremarkseqno.RENL_CERT_NO,#getremarkseqno.EFF_DT_SEQ_NO,a.text_detail AS User_Remarks, a.text_type_cd,#getremarkseqno.text_eff_date

                into #GetRemark

                FROM #getremarkseqno,AUM_Reporting..ttext a

                where #getremarkseqno.remarks_txt_id = a.text_id

                AND #getremarkseqno.text_seq_no = a.text_seq_no

                --and a.text_type_cd="4"

 

--             CREATE INDEX WIP3in1_GetRemark  ON #GetRemark(WIP_NO)

                --GetRemark

 

                --GetRemark1

                SELECT #getremarkseqno.POLICY_NO,#getremarkseqno.CERTIFICATE_NO,#getremarkseqno.RENL_CERT_NO,#getremarkseqno.EFF_DT_SEQ_NO, a.text_detail AS User_Remarks1, a.text_type_cd,#getremarkseqno.text_eff_date

                into #GetRemark1

                FROM #getremarkseqno , AUM_Reporting..ttext a

                where #getremarkseqno.text_seq_no1 = a.text_seq_no

                AND #getremarkseqno.remarks_txt_id = a.text_id

                --and a.text_type_cd="4"

 

--             CREATE INDEX WIP3in1_GetRemark1  ON #GetRemark1(WIP_NO)

                --GetRemark1

 

                --GetRemark2

                SELECT #getremarkseqno.POLICY_NO,#getremarkseqno.CERTIFICATE_NO,#getremarkseqno.RENL_CERT_NO,#getremarkseqno.EFF_DT_SEQ_NO, a.text_detail AS User_Remarks2, a.text_type_cd,#getremarkseqno.text_eff_date

                into #GetRemark2

                FROM #getremarkseqno,AUM_Reporting..ttext a

                where #getremarkseqno.text_seq_no2 = a.text_seq_no

                AND #getremarkseqno.remarks_txt_id = a.text_id

                --and a.text_type_cd="4"

 

--             CREATE INDEX WIP3in1_GetRemark2  ON #GetRemark2(WIP_NO)

                --GetRemark2

 

 

--   UPDATE G3..Track_Record_REPORT

--   SET User_Remarks = b.User_Remarks

 

    /* Adaptive Server has expanded all '*' elements in the following statement */ select a.policy_no, a.certificate_no, a.renl_cert_no, a.eff_dt_seq_no, a.branch_off_cd, a.prdr_branch_sub_cd, a.Branch, a.product_name, a.major_line_cd, a.ProductGroup, a.pol_incept_date, a.pol_exp_date, a.ins_name_client_no, a.ClientName, a.Client_city_name, a.pol_status_cd, a.record_type_desc, a.policy_counter, a.accounting_period, a.ProducerName, a.PremiumAmount, a.o_prem_amt, a.SUM_INSURED, a.record_type_cd, a.producer_cd, a.EntryDate, a.EntryMonth, a.EntryDay, a.EntryWeek, a.InceptionMonth, a.InceptionDay, a.InceptionWeek, a.CoverNoteNumber, a.Cover_Note_date, a.Cov_nt_iss_month, a.Application_no, a.TIMESTAMP, a.watts_policy_no, a.Producer_type, a.times_renewed_cnt, a.Producer_Category, a.receipt_date, a.rcpt_branch_cd, a.rcpt_branch_sub_cd, a.receipt_no, a.product_cd, a.new_producer_cd, a.watts_issue_dt, a.Channel, a.prem_eff_date, a.orig_curr_cd, a.LOB, a.devel_det, a.PIN, a.WIP_NO, a.POL_TYPE, a.APPLICATION_RECEIVED_DT, a.WIP_CREATION_DT, a.POL_PRINT_DT, a.POL_DELIVERY_DT, a.QC_STATUS_CD, a.QC_REMARK_ID, a.QC_USERID_CD, a.QC_TIMESTAMP, a.QC_TIMES_REJECT, a.pol_chnge_eff_date, a.tpol_rcpt_dets, a.REFUNDEE_ID          , b.User_Remarks,b.text_eff_date into #Track_Record_report

   FROM #GetRemark B ,G3..Track_Record_REPORT A

   WHERE              b.POLICY_NO = a.POLICY_NO

                AND b.CERTIFICATE_NO = a.CERTIFICATE_NO

                AND b.RENL_CERT_NO = a.RENL_CERT_NO

                AND b.EFF_DT_SEQ_NO = a.EFF_DT_SEQ_NO

--             and accounting_period = 'Jul 31 2010'

 

 

--   UPDATE G3..Track_Record_REPORT

--   SET User_Remarks1 = b.User_Remarks1

 

                /* Adaptive Server has expanded all '*' elements in the following statement */ insert  into #Track_Record_report

                   select a.policy_no, a.certificate_no, a.renl_cert_no, a.eff_dt_seq_no, a.branch_off_cd, a.prdr_branch_sub_cd, a.Branch, a.product_name, a.major_line_cd,  a.ProductGroup, a.pol_incept_date, a.pol_exp_date, a.ins_name_client_no, a.ClientName, a.Client_city_name, a.pol_status_cd, a.record_type_desc, a.policy_counter, a.accounting_period, a.ProducerName, a.PremiumAmount, a.o_prem_amt, a.SUM_INSURED, a.record_type_cd, a.producer_cd, a.EntryDate, a.EntryMonth, a.EntryDay, a.EntryWeek, a.InceptionMonth, a.InceptionDay, a.InceptionWeek, a.CoverNoteNumber, a.Cover_Note_date, a.Cov_nt_iss_month, a.Application_no, a.TIMESTAMP, a.watts_policy_no, a.Producer_type, a.times_renewed_cnt, a.Producer_Category, a.receipt_date, a.rcpt_branch_cd, a.rcpt_branch_sub_cd, a.receipt_no, a.product_cd, a.new_producer_cd, a.watts_issue_dt, a.Channel, a.prem_eff_date, a.orig_curr_cd, a.LOB, a.devel_det, a.PIN, a.WIP_NO, a.POL_TYPE, a.APPLICATION_RECEIVED_DT, a.WIP_CREATION_DT, a.POL_PRINT_DT, a.POL_DELIVERY_DT, a.QC_STATUS_CD, a.QC_REMARK_ID, a.QC_USERID_CD, a.QC_TIMESTAMP, a.QC_TIMES_REJECT, a.pol_chnge_eff_date, a.tpol_rcpt_dets, a.REFUNDEE_ID                                                , b.User_Remarks1,b.text_eff_date

                   FROM #GetRemark1 B ,G3..Track_Record_REPORT A

                   WHERE              b.POLICY_NO = a.POLICY_NO

                AND b.CERTIFICATE_NO = a.CERTIFICATE_NO

                AND b.RENL_CERT_NO = a.RENL_CERT_NO

                AND b.EFF_DT_SEQ_NO = a.EFF_DT_SEQ_NO

--             and accounting_period = 'Jul 31 2010'

 

--   UPDATE G3..Track_Record_REPORT

--   SET User_Remarks2 = b.User_Remarks2

 

    /* Adaptive Server has expanded all '*' elements in the following statement */ insert  into #Track_Record_report

   select a.policy_no, a.certificate_no, a.renl_cert_no, a.eff_dt_seq_no, a.branch_off_cd, a.prdr_branch_sub_cd, a.Branch, a.product_name, a.major_line_cd, a.ProductGroup,  a.pol_incept_date, a.pol_exp_date, a.ins_name_client_no, a.ClientName, a.Client_city_name, a.pol_status_cd, a.record_type_desc, a.policy_counter, a.accounting_period, a.ProducerName, a.PremiumAmount, a.o_prem_amt, a.SUM_INSURED, a.record_type_cd, a.producer_cd, a.EntryDate, a.EntryMonth, a.EntryDay, a.EntryWeek, a.InceptionMonth, a.InceptionDay, a.InceptionWeek, a.CoverNoteNumber, a.Cover_Note_date, a.Cov_nt_iss_month, a.Application_no, a.TIMESTAMP, a.watts_policy_no, a.Producer_type, a.times_renewed_cnt, a.Producer_Category, a.receipt_date, a.rcpt_branch_cd, a.rcpt_branch_sub_cd, a.receipt_no, a.product_cd, a.new_producer_cd, a.watts_issue_dt, a.Channel, a.prem_eff_date, a.orig_curr_cd, a.LOB, a.devel_det, a.PIN, a.WIP_NO, a.POL_TYPE, a.APPLICATION_RECEIVED_DT, a.WIP_CREATION_DT, a.POL_PRINT_DT, a.POL_DELIVERY_DT, a.QC_STATUS_CD, a.QC_REMARK_ID, a.QC_USERID_CD, a.QC_TIMESTAMP, a.QC_TIMES_REJECT, a.pol_chnge_eff_date, a.tpol_rcpt_dets, a.REFUNDEE_ID                                               , b.User_Remarks2,b.text_eff_date

   FROM #GetRemark2 B ,G3..Track_Record_REPORT A

   WHERE              b.POLICY_NO = a.POLICY_NO

                AND b.CERTIFICATE_NO = a.CERTIFICATE_NO

                AND b.RENL_CERT_NO = a.RENL_CERT_NO

                AND b.EFF_DT_SEQ_NO = a.EFF_DT_SEQ_NO

-- and    accounting_period = 'Jul 31 2010'

 

 

 

IF OBJECT_ID('tempdb..Track_Record') IS NOT NULL

BEGIN

    DROP TABLE tempdb..Track_Record

END

 

 

/* Adaptive Server has expanded all '*' elements in the following statement */ select #Track_Record_report.policy_no, #Track_Record_report.certificate_no, #Track_Record_report.renl_cert_no, #Track_Record_report.eff_dt_seq_no, #Track_Record_report.branch_off_cd, #Track_Record_report.prdr_branch_sub_cd, #Track_Record_report.Branch, #Track_Record_report.product_name, #Track_Record_report.major_line_cd,  #Track_Record_report.ProductGroup,  #Track_Record_report.pol_incept_date, #Track_Record_report.pol_exp_date, #Track_Record_report.ins_name_client_no, #Track_Record_report.ClientName, #Track_Record_report.Client_city_name, #Track_Record_report.pol_status_cd, #Track_Record_report.record_type_desc, #Track_Record_report.policy_counter, #Track_Record_report.accounting_period, #Track_Record_report.ProducerName, #Track_Record_report.PremiumAmount, #Track_Record_report.o_prem_amt, #Track_Record_report.SUM_INSURED, #Track_Record_report.record_type_cd, #Track_Record_report.producer_cd, #Track_Record_report.EntryDate, #Track_Record_report.EntryMonth, #Track_Record_report.EntryDay, #Track_Record_report.EntryWeek, #Track_Record_report.InceptionMonth, #Track_Record_report.InceptionDay, #Track_Record_report.InceptionWeek, #Track_Record_report.CoverNoteNumber, #Track_Record_report.Cover_Note_date, #Track_Record_report.Cov_nt_iss_month, #Track_Record_report.Application_no, #Track_Record_report.TIMESTAMP, #Track_Record_report.watts_policy_no, #Track_Record_report.Producer_type, #Track_Record_report.times_renewed_cnt, #Track_Record_report.Producer_Category, #Track_Record_report.receipt_date, #Track_Record_report.rcpt_branch_cd, #Track_Record_report.rcpt_branch_sub_cd, #Track_Record_report.receipt_no, #Track_Record_report.product_cd, #Track_Record_report.new_producer_cd, #Track_Record_report.watts_issue_dt, #Track_Record_report.Channel, #Track_Record_report.prem_eff_date, #Track_Record_report.orig_curr_cd, #Track_Record_report.LOB, #Track_Record_report.devel_det, #Track_Record_report.PIN, #Track_Record_report.WIP_NO, #Track_Record_report.POL_TYPE, #Track_Record_report.APPLICATION_RECEIVED_DT, #Track_Record_report.WIP_CREATION_DT, #Track_Record_report.POL_PRINT_DT, #Track_Record_report.POL_DELIVERY_DT, #Track_Record_report.QC_STATUS_CD, #Track_Record_report.QC_REMARK_ID, #Track_Record_report.QC_USERID_CD, #Track_Record_report.QC_TIMESTAMP, #Track_Record_report.QC_TIMES_REJECT, #Track_Record_report.pol_chnge_eff_date, #Track_Record_report.tpol_rcpt_dets, #Track_Record_report.REFUNDEE_ID, #Track_Record_report.User_Remarks, #Track_Record_report.text_eff_date into tempdb..Track_Record  from #Track_Record_report

 

delete  from    tempdb..Track_Record where user_remarks like  '%clean%'

 

end

 

 

 

 

 

go

IF OBJECT_ID('RPTUSR.SP_Track_Record2') IS NOT NULL

    PRINT '<<< CREATED PROCEDURE RPTUSR.SP_Track_Record2 >>>'

ELSE

    PRINT '<<< FAILED CREATING PROCEDURE RPTUSR.SP_Track_Record2 >>>'



Now I want to get rid of all the temporary tables in the above query :

Below is the query that I have written, but it does not return any rows. Can anyone help?

What I have tried:

select a.policy_no, a.certificate_no, a.renl_cert_no, a.eff_dt_seq_no, a.branch_off_cd, a.prdr_branch_sub_cd, a.Branch, a.product_name, a.major_line_cd,

 a.ProductGroup, a.pol_incept_date, a.pol_exp_date, a.ins_name_client_no, a.ClientName, a.Client_city_name, a.pol_status_cd, a.record_type_desc,

 a.policy_counter, a.accounting_period, a.ProducerName, a.PremiumAmount, a.o_prem_amt, a.SUM_INSURED, a.record_type_cd, a.producer_cd, a.EntryDate,

  a.EntryMonth, a.EntryDay, a.EntryWeek, a.InceptionMonth, a.InceptionDay, a.InceptionWeek, a.CoverNoteNumber, a.Cover_Note_date, a.Cov_nt_iss_month,

  a.Application_no, a.TIMESTAMP, a.watts_policy_no, a.Producer_type, a.times_renewed_cnt, a.Producer_Category, a.receipt_date, a.rcpt_branch_cd,

  a.rcpt_branch_sub_cd, a.receipt_no, a.product_cd, a.new_producer_cd, a.watts_issue_dt, a.Channel, a.prem_eff_date, a.orig_curr_cd, a.LOB, a.devel_det,

   a.PIN, a.WIP_NO, a.POL_TYPE, a.APPLICATION_RECEIVED_DT, a.WIP_CREATION_DT, a.POL_PRINT_DT, a.POL_DELIVERY_DT, a.QC_STATUS_CD, a.QC_REMARK_ID,

    a.QC_USERID_CD, a.QC_TIMESTAMP, a.QC_TIMES_REJECT, a.pol_chnge_eff_date, a.tpol_rcpt_dets, a.REFUNDEE_ID, b.text_eff_date

    --b.User_Remarks1,b.text_eff_date,  a.Entry

 

  FROM

  (select x.POLICY_NO,x.CERTIFICATE_NO,x.RENL_CERT_NO,x.EFF_DT_SEQ_NO,

                x.remarks_txt_id ,max (y.text_seq_no) text_seq_no ,

                text_seq_no1 = case when count(*) >1 then max (y.text_seq_no) -1 else 0 end,

                text_seq_no2 = case when count(*) >2 then max (y.text_seq_no) -2 else 0 end,

                text_seq_no3 = case when count(*) >3 then max (y.text_seq_no) -3 else 0 end,

                text_eff_date

               

                from

                AUM_Reporting..Tpolicy x noholdlock,

                AUM_Reporting..ttext y noholdlock,

                S3REPORTS..Track_Record dd(index sla_policy_indx) noholdlock

                where

--             dd.accounting_period = 'Jul 31 2010'

                -- b.text_type_cd="4"   and  --(commented by amol041010)

                y.text_id = x.remarks_txt_id

                AND dd.POLICY_NO = x.POLICY_NO

                AND dd.CERTIFICATE_NO = x.CERTIFICATE_NO

                AND dd.RENL_CERT_NO = x.RENL_CERT_NO

                AND dd.EFF_DT_SEQ_NO = x.EFF_DT_SEQ_NO

                and convert(smalldatetime,convert(varchar,text_eff_date,111))>= convert(smalldatetime,convert(varchar,dd.WIP_CREATION_DT,111))

                and x.pol_office_cd = '064001'

                group by x.POLICY_NO,x.CERTIFICATE_NO,x.RENL_CERT_NO,x.EFF_DT_SEQ_NO,x.remarks_txt_id,y.text_eff_date)

                                      

                         B ,

                                  

                   S3REPORTS..Track_Record A,

                  

                   AUM_Reporting..ttext C

                  

                   WHERE              b.POLICY_NO = a.POLICY_NO

                AND b.CERTIFICATE_NO = a.CERTIFICATE_NO

                AND b.RENL_CERT_NO = a.RENL_CERT_NO

                AND b.EFF_DT_SEQ_NO = a.EFF_DT_SEQ_NO

               

                AND b.remarks_txt_id = C.text_id

                AND b.text_seq_no = C.text_seq_no
                AND b.text_seq_no1 = C.text_seq_no

                AND b.text_seq_no2 = C.text_seq_no

解决方案

Introduction to Temporary Tables in SQL Server[^]

There is a section in there about deleting temporary tables


这篇关于帮助摆脱查询中的临时表。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆