- 论坛徽章:
- 0
|
关于SQL语句的问题。比较难的
原帖由 "yhp" 发表:
【临时表的产生
with dinfo(ITMITMNO) as (select ITMITMNO from abjqaidb/itm where itmitmno<'100')
select dinfo.itmitmno,a.itmitmno
from abjqaidb/itm as a,dinfo
where a.itmitmno=dinfo..........
这种用法的确没见过。我试了,SELECT没用问题。UPDATE依然不行。问题不在于能不能产生临时表。就算生成一个物理表也是无法实现的。因为你在写更新条件必须能够动态向下滚动B表记录,即要加上SELECT ....... FROM B WHERE ......., 而SELECT更本加不到WHERE后面(多字段条件下)。
这个问题已经解决。方法如下,供大家参考:
UPDATE ZHUCHK/NTLGURCV A SET A.GCCV=1000
WHERE A.GCEDUR=(SELECT MAX(GCEDUR)
FROM ZHUCHK/NTLGURCV B
WHERE B.GCTABL=A.GCTABL AND B.GCIAGE=A.GCIAGE AND B.GCSEX=A.GCSEX AND A.GCCV=0 AND B.GCTABL LIKE 'J1%'
GROUP BY B.GCTABL,B.GCIAGE,B.GCSEX)
用的是一种逆向思维。 |
|