免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: lordlost
打印 上一主题 下一主题

請教一個AS400上UPDATE的SQL語法 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-12-21 09:37 |只看该作者
汗,没看见9楼的答复。。。

论坛徽章:
0
12 [报告]
发表于 2005-12-21 09:47 |只看该作者
汗,强贴~我什么都没看见。路过一下~!

论坛徽章:
0
13 [报告]
发表于 2005-12-21 09:57 |只看该作者
原帖由 liu__jiang 于 2005-12-21 09:35 发表


不好意思,写得有误,应该是:
INSERT INTO A (A2)
SELECT B2 FROM B
WHERE A。A1=B。B1
可行,我试过了。


測試了一下,出現以下錯誤:
Column qualifier or table PFMV9 undefined.

不知是何緣故?

謝謝回應!

论坛徽章:
0
14 [报告]
发表于 2005-12-21 10:04 |只看该作者
原帖由 just a kid 于 2005-12-21 09:36 发表
select b2 into a2 form b where b.b1 = a.a1 试这个呢


請教一下,這個語法中似乎沒看到define A文件,SQL如何得知A1,A2呢?

感謝回應!

论坛徽章:
0
15 [报告]
发表于 2005-12-21 10:09 |只看该作者
原帖由 utirei 于 2005-12-21 09:47 发表
汗,强贴~我什么都没看见。路过一下~!


呵呵~大哥我可看見您了!
您的問題在前一頁還沒解決呢,麻煩您一下了

謝謝啦!我叫我女兒給你香一個...

论坛徽章:
0
16 [报告]
发表于 2005-12-21 10:58 |只看该作者
UPDATE   TB1                  SET                  
   TB1.FLD3=(SELECT FLD3 FROM TB2              
                     WHERE TB1.FLD1=TB2.FLD1
                     AND TB1.FLD1=TB2.FLD2)   
   WHERE TB1.FLD1   IN (                           
     SELECT FLD1  FROM TB2                  
       WHERE TB1.FLD1=TB2.FLD1                 
       AND TB1.FLD2=TB2.FLD2)                  
    AND  TB1.FLD2   IN (                           
     SELECT FLD2  FROM TB2                                
       WHERE TB1.FLD1=TB2.FLD1                 
       AND TB1.FLD2=TB2.FLD2)              
帮你写的全一些,打算将来让你女儿给我儿子做老婆呵呵~

论坛徽章:
0
17 [报告]
发表于 2005-12-21 11:53 |只看该作者
原帖由 utirei 于 2005-12-21 10:58 发表
UPDATE   TB1                  SET                  
   TB1.FLD3=(SELECT FLD3 FROM TB2              
                     WHERE TB1.FLD1=TB2.FLD1
                     AND TB1.FLD1=TB2.FLD2)   
   WHERE TB1.FLD1   IN (                           
     SELECT FLD1  FROM TB2                  
       WHERE TB1.FLD1=TB2.FLD1                 
       AND TB1.FLD2=TB2.FLD2)                  
    AND  TB1.FLD2   IN (                           
     SELECT FLD2  FROM TB2                                
       WHERE TB1.FLD1=TB2.FLD1                 
       AND TB1.FLD2=TB2.FLD2)              
帮你写的全一些,打算将来让你女儿给我儿子做老婆呵呵~

呵呵~這我可做不了主,我女兒現下才一歲多,您兒子還有得等,況且現在那個小孩還肯『奉父母之命成親』的?『奉兒女之命成親』的倒是不少!哈哈~

我照您的方式RUN了一下SQL,可又出現新的問題了(哈~好事多磨):

UPDATE   TB1 SET                  
   TB1.FLD3=(SELECT FLD3 FROM TB2              
                     WHERE TB1.FLD1=TB2.FLD1      )   
   WHERE TB1.FLD1   IN (                           
     SELECT FLD1  FROM TB2                  
       WHERE TB1.FLD1=TB2.FLD1                 
       )                  
   

Result of SELECT more than one row.

不曉得是否跟TB1中一筆資料會對應到多筆TB2有關?
※TB2中與TB1對應之FLD1會有多筆,但每一個符合對應的TB2.FLD3均相同,所以任取其中之一給TB1.FLD3均可。

此問題有解嗎?
麻煩您了!要娶媳婦可不是件簡單事吧...哈哈~感謝!

论坛徽章:
0
18 [报告]
发表于 2005-12-21 12:43 |只看该作者
没事儿,我儿子现在还不知道在哪儿呢。嘿嘿。
两个where 条件都是用来选择唯一记录的。把条件设置正确应该没有问题。

论坛徽章:
0
19 [报告]
发表于 2005-12-21 12:51 |只看该作者
我在前面写的sql是一对一更新。

你要做的是一对多更新,
可以select之后加 distinct。
不过数据一致性就不好说了。
具体看你们怎么要求的了。

论坛徽章:
0
20 [报告]
发表于 2005-12-21 12:59 |只看该作者
感謝所有回應的朋友!
問題已解決。

特別感謝utirei 兄大力相助,相詢小女後,她用肢體語言表示沒空香你,沒辦法!!只好我這個老爸來代勞了,您是喜歡嘴對嘴的呢?還是法國式的呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP