创建临时表,然后使用 DBI 包将 R 的查询结果插入表中

问题描述 投票:0回答:0

我有以下代码:

create table #membercoverage
      (Record char(1), Client char(5), Policy char(10), Certificate char(10), InsuredCode char(24), Product char(5), BenPlan char(3),  Cov char(3), Initial smalldatetime, Recorded smalldatetime, RecordedBy char(8), DateStamp datetime,
       PRDSTATUS char(1),  Proposed decimal(11,0), Inforce decimal(11,0), NEL decimal(11,0), Effective smalldatetime, SortID char(40),

       unique clustered (policy, certificate, product, benplan, cov, recorded, record)
       )

insert into #membercoverage
select case when chgeffdt > getdate() then 'F' else 'C' end, m.CLNTCODE, m.POLNO, CERTNO, m.clntcode + 'Cert' + certno + 'Dep01', PRODCODE, BENPLNCD, COVGCODE, INIEFFDT, CHGEFFDT, RCDUSRID, getdate(),
          PRDSTATUS, isnull(PROLFIA,0), isnull(INFLFIA,0), isnull(NELAMT,0), CHGEFFDATE, m.polno+certno+prodcode+benplncd+covgcode+convert(char(8),chgeffdt,112)+'C'
from #param p  inner join tmemptpol m with (nolock) on p.polno = m.polno and rcdsts='A' and inieffdt<=effective and chgeffdt<=asofdate
UNION
select case when chgeffdt > getdate() then 'F' else 'H' end, m.CLNTCODE, m.POLNO, CERTNO, m.clntcode + 'Cert' + certno + 'Dep01', PRODCODE, BENPLNCD, COVGCODE, INIEFFDT, CHGEFFDT, RCDUSRID, rcddtstmp,
          PRDSTATUS, isnull(PROLFIA,0), isnull(INFLFIA,0),  isnull(NELAMT,0), CHGEFFDATE,
         m.polno+certno+prodcode+benplncd+covgcode+convert(char(8),chgeffdt,112)+case when chgeffdt>getdate() then 'F' else 'H' end
from  #param p  inner join tmemptpolh m with (nolock) on p.polno = m.polno and rcdsts='A' and inieffdt<=effective and chgeffdt<=asofdate

我想使用 DBI 包将其转换为 R。我是新来的。有谁可以帮忙吗?

我尝试了这段代码:

dbExecute(conCompass, paste0("insert into #test1
          select case when m.chgeffdt > getdate() then 'F' else 'C' end, m.CLNTCODE, m.POLNO, CERTNO, m.clntcode + 'Cert' + certno + 'Dep01', PRODCODE, BENPLNCD, COVGCODE, m.INIEFFDT, m.CHGEFFDT, m.RCDUSRID, getdate(),
          PRDSTATUS, isnull(PROLFIA,0), isnull(INFLFIA,0), isnull(NELAMT,0), m.CHGEFFDATE, m.polno+certno+prodcode+benplncd+covgcode+convert(char(8),m.chgeffdt,112)+'C'
          from #param p inner join tmemptpol m with (nolock) on p.polno=m.polno and m.rcdsts='A'and m.INIEFFDT<= '", EffectiveDate,"' and m.chgeffdt<='", AsOfDate,"'
          UNION
          select case when m.chgeffdt > getdate() then 'F' else 'H' end, m.CLNTCODE, m.POLNO, CERTNO, m.clntcode + 'Cert' + certno + 'Dep01', PRODCODE, BENPLNCD, COVGCODE, m.INIEFFDT, m.CHGEFFDT, m.RCDUSRID, m.rcddtstmp,
          PRDSTATUS, isnull(PROLFIA,0), isnull(INFLFIA,0), isnull(NELAMT,0), m.CHGEFFDATE, m.polno+certno+prodcode+benplncd+covgcode+convert(char(8),m.chgeffdt,112) +  case when m.chgeffdt > getdate() then 'F' else 'H' end
          from #param p inner join TMEMPTpOLh m with (nolock) on p.polno=m.polno and m.rcdsts='A'and m.INIEFFDT<= '", EffectiveDate,"' and m.chgeffdt<='", AsOfDate,"'"),immediate=TRUE)

我也不知道如何定义test1。

r dbi
© www.soinside.com 2019 - 2024. All rights reserved.