gpt4 book ai didi

sql - 将选择转换为更新

转载 作者:行者123 更新时间:2023-12-03 19:49:54 24 4
gpt4 key购买 nike

我正在使用SQLite,我创建了以下select语句,该语句可为我提供所需的结果,现在介绍如何将它们放在需要的地方:

SELECT 
ii.Invoice_Item_Id,
pli.PRICE,
(pli.PRICE * ii.Qty) AS Sub_Total
FROM
Invoice_Item ii
LEFT OUTER JOIN CS_PRICE_LIST_ITEM pli ON (ii.Product_Id = pli.Product_Id)
AND (pli.EVENT_PRICE_LIST_ID = 2)
WHERE
ii.Invoice_Id = ?


Invoice_Item表具有两列:ii.Price,ii.Sub_Total。两者均为NULL。目标是将它们设置为此查询的结果,其中ii.Price = pli.PRICE和ii.Sub_Total =(pli.PRICE * ii.Qty)。当然,我不想为给定的ii.Invoice_Id更新整个表。我知道从选择中插入是一种非常有用的方法,是否可以通过更新来完成?如果是这样,它是什么样的?

最佳答案

SQLite中的update语句不支持join。但是,您通常可以使用相关子查询来更新内容。以下可能是您正在寻找的:

update InvoiceItem
set Sub_Total = (select coalesce(ii.Sub_Total, coalesce(ii.Price, pli.PRICE) * ii.Qty)
FROM Invoice_Item ii LEFT OUTER JOIN
CS_PRICE_LIST_ITEM pli
ON ii.Product_Id = pli.Product_Id and
pli.EVENT_PRICE_LIST_ID = 2
WHERE ii.Invoice_Id = InvoiceItem.Invoice_Id
);

关于sql - 将选择转换为更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18070696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com