起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1896|回复: 4

[结贴] KSQL做UPDATE更新操作遇到的问题

[复制链接]

129

主题

414

帖子

1524

积分

金牌会员

Rank: 6Rank: 6

积分
1524
QQ
发表于 2015-10-15 14:59:26 | 显示全部楼层 |阅读模式
本帖最后由 lonely 于 2015-10-15 15:00 编辑

KSQL支持:
UPDATE A SET A.NAME = B.NAME, A.NUMBER = B.NUMBER FROM TOA A JOIN TOB B ON B.CODE = A.CODE 或
UPDATE TOA A SET (A.NAME, A.NUMBER) = (SELECT B.NAME, B.NUMBER FROM TOB B ON B.CODE = A.CODE) 的写法吗?


由于其中涉及计算业务,需要更新多个字段的计算结果。

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36115
发表于 2015-10-15 17:13:41 | 显示全部楼层
ksql中update的语法如下:


具体报什么错?
ksql.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

129

主题

414

帖子

1524

积分

金牌会员

Rank: 6Rank: 6

积分
1524
QQ
 楼主| 发表于 2015-10-15 19:57:50 | 显示全部楼层
jishuang 发表于 2015-10-15 17:13
ksql中update的语法如下:

KSQL:
  1. UPDATE LS_RW_DelCostDtl DCD
  2.    SET (DCD.fFreight,
  3.         DCD.fFreightPrice DCD.fLdPrice,
  4.         DCD.fLdFee,
  5.         DCD.fUnLdPrice,
  6.         DCD.fUnLdFee,
  7.         DCD.fDressFee,
  8.         DCD.fCodeFee) =
  9.        (SELECT (DCD.fWeight / :shipWeight * :val),
  10.                :freightPrice,
  11.                LDHD.fLdFee,
  12.                (LDHD.fLdFee * DCD.fWeight),
  13.                UNLDHD.fUnLdFee,
  14.                (UNLDHD.fUnLdFee * DCD.fWeight),
  15.                (CGFD.fDressFee * DOD.fPackageAmount +
  16.                QTFD.fDressFee * DOD.fAmount),
  17.                (CGFD.fCodeFee * DOD.fPackageAmount +
  18.                QTFD.fCodeFee * DOD.fAmount)
  19.           FROM LS_DE_DelOrderDetail DOD
  20.           JOIN LS_DE_DelOrder DO
  21.             ON DO.fDelNo = DOD.fDelNo OPTIONAL
  22.           JOIN LS_BS_Handling LDH
  23.             ON LDH.fWCode = DOD.fStartWCode
  24.            AND LDH.fHandCode = DO.fHandCode OPTIONAL
  25.           JOIN LS_BS_HandlingDtl LDHD
  26.             ON LDHD.fHWID = LDH
  27.            AND LDHD.fBrandCode = DOD.fBrandCode OPTIONAL
  28.           JOIN LS_BS_Handling UNLDH
  29.             ON UNLDH.fWCode = DO.fEndWCode
  30.            AND UNLDH.fHandCode = DO.fHandCode OPTIONAL
  31.           JOIN LS_BS_HandlingDtl UNLDHD
  32.             ON UNLDHD.fHWID = UNLDH
  33.            AND UNLDHD.fBrandCode = DOD.fBrandCode OPTIONAL
  34.           JOIN LS_BS_FaceliftDress CGFD
  35.             ON CGFD.fProdCode = '99999999' OPTIONAL
  36.           JOIN LS_BS_FaceliftDress QTFD
  37.             ON QTFD.fProdCode = DOD.fProdCode
  38.          WHERE DOD = DCD.fDelBillDtlID)
  39. WHERE DCD.fDelBillDtlID IN
  40.        (SELECT DOD
  41.           FROM LS_DE_DelOrderDetail DOD
  42.           JOIN LS_DE_DelOrder DO
  43.             ON DO.fDelNo = DOD.fDelNo
  44.            AND DO.fShipNo = :shipNo)
复制代码


报错是提示: KSQL语法错误, ostDtl DCD SET ^^(DCD.fFreight, 中未找到需要的元素, 位置32期望是<Identifier>

另外使用UPDATE FROM JOIN 也是报类似的错误。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36115
发表于 2015-10-16 11:06:38 | 显示全部楼层
比较复杂的语句推荐用sql实现,ksql对子查询的支持可能有问题
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

129

主题

414

帖子

1524

积分

金牌会员

Rank: 6Rank: 6

积分
1524
QQ
 楼主| 发表于 2015-10-16 14:05:00 | 显示全部楼层
jishuang 发表于 2015-10-16 11:06
比较复杂的语句推荐用sql实现,ksql对子查询的支持可能有问题

明白,谢谢,结贴吧!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-3-14 18:37 , Processed in 0.060116 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表