Sql server 如何编写将连接两个表并给出输出的存储过程
我正在尝试编写一个SP,该SP将连接两个表并提供所需的输出。我首先创建一个临时表,在其中列出两个表的所有字段,然后尝试基于连接连接表。但这对我没有帮助。这里是我到目前为止所做的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]
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错误:列名或提供的值数与表定义不匹配。这意味着选择列表中的列数与表中的列数不同。