【发布时间】:2021-11-12 17:32:36
【问题描述】:
我想更新 ChannelInfo 报告 ChannelId 更新行返回的内容 但是这个查询不工作,报错:
ERROR: syntax error at or near ""AdsReporting""
LINE : where "CampaignInfo"."id" in (update "AdsReporting" set "adS...
^
SQL state: 42601
Character: 240
谁能帮帮我?
上报ChannelId是与ChannelInfo主键的外键关系。
代码:
update "ChannelInfo" set "Amount"=CASE WHEN "Duration"='60' THEN "Amount"-12.25 ELSE "Amount"-6.13 END
where "id"=(update "Reporting" set "Status"='run' where "Status"='a' RETURNING "ChannelId");
【问题讨论】:
-
请提供示例数据、期望的结果以及您要实现的逻辑的清晰说明。
-
此查询工作正常,但 channelInfo 和 Reporting 具有一对多关系,因此(从 u 中选择 u.ChannelId)可以返回相同的两个广告系列 id,因此它有两个减去 Amount 2 倍,但它只有减去一个时间。
-
示例这是选择查询返回,u 为(更新“报告”设置“状态”=“运行”,其中“状态”=“a”返回“频道 ID”)更新“频道信息”设置“金额"= (CASE WHEN "Duration" = '60' THEN "Amount" - 12.25 ELSE "Amount" - 6.13 END) where "id" in (3, 3);它必须减去 ChannelInfo Amount 两次,但它只减去 Amount 一次
-
您好,您能帮帮我吗?
-
你好@GordonLinoff
标签: sql database postgresql sql-update