【问题标题】:How to update the table with my inner join如何使用我的内部联接更新表
【发布时间】:2018-09-22 00:45:32
【问题描述】:

我想更新列PPVGLAccountID = 5 的值。目前显示81。 但问题是在同一张桌子上有些列不在下面。 如何使用查询 UPDATE 和 SET?

谢谢

我的代码是:

UPDATE dbo.POInvoicingDetails
SET PPVGLAccountID = '5'
FROM dbo.POInvoicingDetails
INNER JOIN dbo.POInvoicing PPVGLAccountID ON dbo.POInvoicingDetails.POInvoicingID
WHERE dbo.POInvoicing.InvoiceNo = '421009'

但我收到一个错误,其中在预期条件的上下文中指定了非布尔类型的表达式。

【问题讨论】:

    标签: sql-server sqlite inner-join


    【解决方案1】:

    我想这就是你想要的:

    UPDATE id
    SET PPVGLAccountID = '5'
    FROM dbo.POInvoicingDetails id INNER JOIN
         dbo.POInvoicing i
         ON id.POInvoicingID = i.POInvoicingID
    WHERE i.InvoiceNo = '421009';
    

    您的ON 子句缺少JOIN 条件。

    【讨论】:

    • 嗨,尝试执行它,但出现错误提示“无法绑定多部分标识符“dbo.PoInvoicingID”:(这是什么意思?
    • @Trish 尝试在 ON 子句后删除 dbo 单词,然后检查
    • @Parfait 。 . .不是根据其中包含连接条件的真正难以阅读的图像。
    【解决方案2】:

    在您的查询中,INNER JOIN 中的语法不正确,因此必须将其稍微更改为正确的语法,如下所示,我希望您使用正确的条件

    UPDATE dbo.POInvoicingDetails
    SET PPVGLAccountID ='5'
    FROM dbo.POInvoicingDetails
    --Condition were missing in the below line compare below line you will get the point
    INNER JOIN dbo.POInvoicing ON dbo.POInvoicing.POInvoicingID = dbo.POInvoicingDetails.POInvoicingID
    WHERE dbo.POInvoicing.InvoiceNo = '421009' 
    
    '421009'--Should not in the quote if it's not `STRING or CHARACTER` type
    

    注意:您可以使用表格alias,以便于编写和缩短代码

    【讨论】:

      猜你喜欢
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 1970-01-01
      • 2022-10-01
      • 1970-01-01
      • 2012-03-13
      相关资源
      最近更新 更多