0

我对 SQL 不是很有经验,但我已经整理了一个查询,虽然我应该使用另一个表中的描述通过加入表来更新一个表中的两个价格(添加 20% 税),这是我的问题代码:-

UPDATE IT_PRICE
SET ITPrice1 = Price1 + (Price1 * .2), ITPrice2 = Price2 + (Price2 * .2)
INNER JOIN IT_PRICE
ON ITEMS.ID = IT_PRICE.ID
Where ITPrice1 <= 0 AND ITPrice2 <=0 AND ITEMS.Item = 'Jet Tec HP 78'

我已经在 SQL Express 2008 和完整的 SQL 2012 中尝试过这个,但是我在“INNER”上遇到了一个语法错误,所以我尝试使用 WITH 语句从不同的角度来解决它:-

WITH Item_ID as (
SELECT ITEMS.ID FROM ITEMS WHERE ITEMS.Item = 'Jet Tec HP 78'
)
UPDATE IT_PRICE
SET ITPrice1 = Price1 + (Price1 * .2), ITPrice2 = Price2 + (Price2 * .2)
WHERE ITPrice1 <= 0 AND ITPrice2 <=0 AND ID = Item_ID

现在我在执行语句时得到“无效的列名 Item_ID”。我想要做的就是在 IT_PRICE 表中的两个价格上对我匹配描述的项目中的所有项目加税。

如果有人能指出我正确的方向,将不胜感激。

谢谢。

4

1 回答 1

1

您缺少 FROM 子句:

UPDATE IT_PRICE
SET ITPrice1 = Price1 + (Price1 * .2), ITPrice2 = Price2 + (Price2 * .2)
FROM IT_PRICE ITEMS INNER JOIN IT_PRICE
ON ITEMS.ID = IT_PRICE.ID
Where ITPrice1 <= 0 AND ITPrice2 <=0 AND ITEMS.Item = 'Jet Tec HP 78'
于 2013-02-18T17:22:23.403 回答