【问题标题】:SQL subquery multiple values, how can i parse each row with a query for every row instead of having all the table displayed?SQL子查询多个值,我如何解析每一行,查询每一行而不是显示所有表?
【发布时间】:2014-11-26 08:53:28
【问题描述】:
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 个值。子查询时不允许这样做 遵循 =、!=、、>= 或当子查询用作 表达

【问题讨论】:

    标签: sql sql-server multiple-value


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 2019-11-28
      • 2013-03-12
      • 1970-01-01
      相关资源
      最近更新 更多