首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

对select 结果直接update 的有关问题

2012-10-13 
对select 结果直接update 的问题请各位大侠,帮小弟解决一下这个问题呗。我刚开始学数据库,完全属于菜鸟水平

对select 结果直接update 的问题
请各位大侠,帮小弟解决一下这个问题呗。我刚开始学数据库,完全属于菜鸟水平
 大概的问题是这样的,根据下面 where条件,将查询到的结果 跟TEST表中一样的数据进行 sum,
代码如下:

UPDATETEST E
SETE.REQUEST_QTY += A.REQUEST_QTY,
E.REQUEST_AMT += A.REQUEST_AMT
FROMPU02121 A
LEFT JOIN
SA01110B ON A.CLIENT_CODE = B.CLIENT_CODE
LEFT JOIN
ITEM_V C ON A.ITEM_CODE = C.ITEM_CODE
INNER JOIN
PU02120 D ON A.REQUEST_NO = D.REQUEST_NO
WHERED.REQUEST_DATE BETWEEN '20120901' AND '20120930'
ANDD.FACILITY = '1'
ANDA.REQUEST_NO = E.REQUEST_NO ANDA.REQUEST_SEQ = E.REQUEST_SEQ

(上面用到的join 是因为还有其他变量需要加入到TEXT表中,除了上面那两项以外其他全部可以为空。 我只是为了让程序简便,才省略了其他的项)

系统老提示我 E 附近有语法错误,希望各位大侠帮我解决,小弟不胜感激啊!

[解决办法]
改成这样试试:

SQL code
UPDATE ESET     E.REQUEST_QTY += A.REQUEST_QTY,E.REQUEST_AMT += A.REQUEST_AMTFROM TEST EINNER JOIN PU02121 AON E.字段=A.字段        --你的问题在于语法错误,这种修改方式,必须在这里先将TEST表和后面的表进行联接,我这里暂时修改成和PU02121表联接。LEFT JOINSA01110    B ON A.CLIENT_CODE = B.CLIENT_CODELEFT JOINITEM_V C ON A.ITEM_CODE = C.ITEM_CODEINNER JOINPU02120 D ON A.REQUEST_NO = D.REQUEST_NOWHERE    D.REQUEST_DATE BETWEEN '20120901' AND '20120930'AND     D.FACILITY = '1'AND     A.REQUEST_NO = E.REQUEST_NO AND    A.REQUEST_SEQ = E.REQUEST_SEQ 

热点排行