0
UPDATE dbo.INVOICELINES
SET dbo.INVOICELINES.NetPrice = ITEM.Price
FROM dbo.INVOICELINES LNS
INNER JOIN dbo.Storage ITEM ON LNS.Product = ITEM.Product



UPDATE dbo.INVOICELINES
SET dbo.INVOICELINES.GrossPrice = dbo.INVOICELINES.NetPrice/100*(100+(select TaxRate  from dbo.INVOICELINES LNS,dbo.TaxRates txr where LNS.TAX=txr.code))

在这个查询中,我更新了发票中的价格,从存储中获取了新价格。

问题出现在最后一次 UPDATE 和 SET 中,我想用发票行中的税码更新总价,参考税码表。

问题出现在有多个发票的地方。我的数据库是意大利语(它)

这是一个例子:

发票行

LINE    INVOI   ARTICLE                     QTT     NET     GROSS   TAX
1       1000    ARTICLE1                    11,00   30,00   36,60   022
2       1000    ARTICLE2                    1,00    0,00    794,22  022
2       2000    ARTICLE1                    1,00    30,00   110,00  010
3       1000    ARTICLE2                    1,00    0,00    55,00   010 

税码

CODE DESCRIPT       PERCENTAGE
004 IVA 4%          4
007 ESCL. ART.7     0
010 IVA 10%         10
017 NS ART 17 EDIL. 0
020 IVA 20%         20
021 IVA 21%         21
022 IVA 22%         22
026 ESCL. ART.26    0
041 NI ART.41 INTRA 0   

问题在这里:

(742 行受影响)消息 512,级别 16,状态 1,第 14 行子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的

4

1 回答 1

0

第二次更新在子查询中返回更多值,试试这个:

UPDATE LNS
SET LNS.GrossPrice = dbo.INVOICELINES.NetPrice/100*(100+(txr.TaxRate)
from dbo.INVOICELINES LNS
JOIN dbo.TaxRates txr ON LNS.TAX=txr.code
于 2014-11-26T09:02:17.673 回答