Sql server 如何编写将连接两个表并给出输出的存储过程

Sql server 如何编写将连接两个表并给出输出的存储过程,sql-server,join,stored-procedures,Sql Server,Join,Stored Procedures,我正在尝试编写一个SP,该SP将连接两个表并提供所需的输出。我首先创建一个临时表,在其中列出两个表的所有字段,然后尝试基于连接连接表。但这对我没有帮助。这里是我到目前为止所做的 CREATE TABLE #es_jeet ( [txtype] [CHAR](2) NULL, [txdesc] [VARCHAR](40) NULL, [txrefno] [CHAR](25) NULL, [clntcode]

我正在尝试编写一个SP,该SP将连接两个表并提供所需的输出。我首先创建一个临时表,在其中列出两个表的所有字段,然后尝试基于连接连接表。但这对我没有帮助。这里是我到目前为止所做的

  CREATE TABLE #es_jeet 
( 
   [txtype]          [CHAR](2) NULL, 
   [txdesc]          [VARCHAR](40) NULL, 
   [txrefno]         [CHAR](25) NULL, 
   [clntcode]        [CHAR](5) NULL, 
   [polno]           [CHAR](10) NULL, 
   [certno]          [CHAR](10) NULL, 
   [depcode]         [DECIMAL](5, 0) NULL, 
   [deptype]         [CHAR](1) NULL, 
   [namefirst]       [CHAR](50) NULL, 
   [namelast]        [CHAR](50) NULL, 
   [namemid]         [CHAR](2) NULL, 
   [inieffdt]        [DATETIME] NULL, 
   [status]          [CHAR](1) NULL, 
   [chgeffdt]        [DATETIME] NULL, 
   [suboffcode]      [CHAR](3) NULL, 
   [departcd]        [CHAR](6) NULL, 
   [memidno]         [CHAR](12) NULL, 
   [dob]             [DATETIME] NULL, 
   [sex]             [CHAR](1) NULL, 
   [marital]         [CHAR](1) NULL, 
   [occupation]      [CHAR](20) NULL, 
   [empno]           [CHAR](10) NULL, 
   [empdt]           [DATETIME] NULL, 
   [salary]          [DECIMAL](13, 2) NULL, 
   [bankac]          [CHAR](40) NULL, 
   [memnation]       [CHAR](3) NULL, 
   [effdate]         [DATETIME] NULL, 
   [bankcode]        [CHAR](4) NULL, 
   [salarymode]      [CHAR](1) NULL, 
   [bankactype]      [CHAR](1) NULL, 
   [bankaceffdate]   [DATETIME] NULL, 
   [bankacstatus]    [CHAR](1) NULL, 
   [firstcovdt]      [DATETIME] NULL, 
   [maxageexemptind] [CHAR](1) NULL, 
   [vipstatus]       [CHAR](1) NULL, 
   [sponsoridno]     [VARCHAR](20) NULL, 
   [passportno]      [CHAR](15) NULL, 
   [nationalidno]    [CHAR](30) NULL, 
   [bankname]        [CHAR](40) NULL, 
   [branchname]      [CHAR](40) NULL, 
   [branchaddress]   [CHAR](40) NULL, 
   [bankcurrency]    [CHAR](3) NULL, 
   [swiftcode]       [CHAR](15) NULL, 
   [servicedeskid]   [CHAR](10) NULL, 
   [servicedeskdate] [DATETIME] NULL, 
   [dmpindicator]    [CHAR](1) NULL, 
   [salarychgeffdt]  [DATETIME] NULL, 
   [studentind]      [CHAR](1) NULL, 
   [outcntyind]      [CHAR](1) NULL, 
   [prodcode]        [CHAR](5) NULL, 
   [benplncd]        [CHAR](3) NULL, 
   [covgcode]        [CHAR](5) NULL, 
   [proposedsa]      [DECIMAL](11, 0) NULL, 
   [prdstatus]       [CHAR](1) NULL, 
   [benid]           [CHAR](20) NULL, 
   [benname]         [CHAR](40) NULL, 
   [benrelat]        [CHAR](15) NULL, 
   [beneffdt]        [DATETIME] NULL, 
   [benshare]        [DECIMAL](5, 4) NULL, 
   [remark]          [CHAR](16) NULL, 
   [rcdsts]          [CHAR](1) NULL, 
   [rcdusrid]        [CHAR](20) NULL, 
   [rcddtstmp]       [DATETIME] NULL, 
   [txstatus]        [CHAR](1) NULL, 
   [uploadusrid]     [VARCHAR](20) NULL, 
   [uploadtime]      [DATETIME] NULL, 
   [errorcode]       [CHAR](6) NULL, 
   [errormsg]        [VARCHAR](100) NULL, 
   [isprocessing]    [CHAR](1) NULL, 
   [SPONSORTYPE]    [INT] NULL  ,
   [GROSSSALARYRANGE][CHAR](1) NULL,
   [SALARYBASEDONCOMMISSION][CHAR](3) NULL,
   [RESIDINGEMIRATE][CHAR](20) NULL,
   [RESIDINGLOCATION][CHAR](20) NULL,
   [WORKLOCATIONEMIRATE][CHAR](20) NULL,
   [WORKLOCATION][CHAR](20) NULL,
   [MEMBERINSURANCEINSIXMONTH][CHAR](50) NULL,
   [VISASPONSORID][CHAR](20) NULL,
   [SPONSORCONTACTNUMBER][CHAR](50) NULL,
   [SPONSOREMAILID][CHAR](50) NULL

  )
  INSERT INTO  #es_jeet

    SELECT DISTINCT A.txtype,X.txdesc,txrefno,A.clntcode,A.polno,A.certno,A.depcode,deptype,namefirst,namelast,
            namemid,A.inieffdt,A.status,A.chgeffdt,suboffcode,departcd,memidno,dob,sex,marital,occupation,empno, 
            empdt,salary,A.bankac,memnation,A.effdate,A.bankcode,A.salarymode,bankactype,bankaceffdate,bankacstatus, 
            firstcovdt,maxageexemptind,vipstatus,sponsoridno,passportno,nationalidno,bankname,branchname,branchaddress, 
            bankcurrency,swiftcode,servicedeskid,servicedeskdate,dmpindicator,salarychgeffdt,studentind, outcntyind,
            PRODCODE =NULL,BENPLNCD =NULL,COVGCODE =NULL,PROPOSEDSA =NULL,PRDSTATUS =NULL,BENID = NULL,BENNAME =NULL, 
            BENRELAT =NULL,BENEFFDT =NULL,BENSHARE = NULL,REMARK =NULL,A.rcdsts,A.rcdusrid,A.rcddtstmp,txstatus,uploadusrid, 
            uploadtime,errorcode,errormsg, isprocessing ,TR.SPONSORTYPE,TR.GROSSSALARYRANGE,TR.SALARYBASEDONCOMMISSION,
            TR.RESIDINGEMIRATE,TR.RESIDINGLOCATION,TR.WORKLOCATIONEMIRATE,TR.WORKLOCATION,TR.MEMBERINSURANCEINSIXMONTH,
            TR.VISASPONSORID,TR.SPONSORCONTACTNUMBER,TR.SPONSOREMAILID

                    FROM            
                   tmemtrans A  (NOLOCK)
                   INNER JOIN es_txtypes X  (NOLOCK)
                           ON A.txtype = X.txtype 
                   INNER JOIN tpolicy P  (NOLOCK)
                           ON A.polno = P.polno 
                   INNER JOIN tpolpdt TP (nolock) 
                           ON A.polno = tp.polno         
                   INNER JOIN TMEMBERREGULATORYINFO TR (nolock)
                          ON TR.CLNTCODE = A.CLNTCODE
                          AND TR.CERTNO = A.CERTNO
                          AND TR.DEPCODE = A.DEPCODE
        WHERE  A.rcdsts = 'A' 
这里的es_jeet是一个临时表,我列出了所有字段,并加入所有这些表以获得结果。请帮助

从[SPONSOREMAILID][CHAR]50 NULL的末尾删除,并放置一个 在uploadtime行的末尾添加一个,errorcode,errormsg,isprocessing,TR.SPONSORTYPE,TR.grossalaryrange,TR.SALARYBASEDONCOMMISSION
看起来不错。您看到的问题是什么?Msg 156,级别15,状态1,第122行关键字“INSERT”附近的语法不正确。Msg 102,级别15,状态1,第132行“.”附近的语法不正确。您尚未关闭CREATE TABLE括号,CREATE的最后一列后面有一个逗号。@dsolimano我已经粘贴了输出,你能不能help@GinjaNinja背景在最后一行。你能编辑我的代码吗???@Diamond Geezer我已经根据你编辑过了,但仍然得到相同的问题你也缺少一个,在最后一行上传时,errorcode,errormsg,i处理,TR.SPONSORTYPE,TR.grossalaryrange,TR.salarybasedon佣金。我已经更新了我的答案,以显示包含此内容。@Diamond Geezer你是在告诉我在TR.SPONSOREMAILID之后添加逗号吗???我已经做了that@DiamondGeezar该错误已消失,但我收到Insert错误:列名或提供的值数与表定义不匹配。这意味着选择列表中的列数与表中的列数不同。