【问题标题】:Update Query with a few JOINs between tables and where clause在表和 where 子句之间使用一些 JOIN 更新查询
【发布时间】:2020-12-19 15:20:51
【问题描述】:

我在 MSSQL DB 中有以下关系:

我想做一个更新查询,我可以在其中过滤第一个表值。 示例如下:

我想从 Inv_Transaction_Lines_Table 获取所有产品,其中第一个表 (Gen_Documents_Table_1) 中的 Document_No 等于“3250824”,状态为“已发布”

SELECT 查询非常简单:

SELECT        dbo.Inv_Transaction_Lines_Table.*, dbo.Inv_Transaction_Lines_Table.Product_Id AS Expr1, dbo.Gen_Documents_Table.Document_No, dbo.Inv_Transaction_Lines_Table.Quantity_Base AS Expr2
FROM            dbo.Gen_Documents_Table AS Gen_Documents_Table_1 RIGHT OUTER JOIN
                         dbo.Inv_Transactions_Table RIGHT OUTER JOIN
                         dbo.Inv_Transaction_Lines_Table ON dbo.Inv_Transactions_Table.Transaction_Id = dbo.Inv_Transaction_Lines_Table.Transaction_Id ON 
                         Gen_Documents_Table_1.Id = dbo.Inv_Transactions_Table.Document_Id LEFT OUTER JOIN
                         dbo.Gen_Documents_Table ON Gen_Documents_Table_1.Master_Document_Id = dbo.Gen_Documents_Table.Id
WHERE        (Gen_Documents_Table_1.State = N'30') AND (dbo.Gen_Documents_Table.Document_No = N'3250824')

但我无法使用 UPDATE 查询进行管理。

谢谢!

【问题讨论】:

    标签: sql-server tsql join sql-update


    【解决方案1】:

    如果您对 select 的查询是正确的,您可以对 select 的同一查询使用 update 。例如,如果您想更新 quantity_base :

    update Inv_Transaction_Lines_Table set quantity_base = 'A'
    FROM            dbo.Gen_Documents_Table AS Gen_Documents_Table_1 RIGHT OUTER JOIN
                             dbo.Inv_Transactions_Table RIGHT OUTER JOIN
                             dbo.Inv_Transaction_Lines_Table ON dbo.Inv_Transactions_Table.Transaction_Id = dbo.Inv_Transaction_Lines_Table.Transaction_Id ON 
                             Gen_Documents_Table_1.Id = dbo.Inv_Transactions_Table.Document_Id LEFT OUTER JOIN
                             dbo.Gen_Documents_Table ON Gen_Documents_Table_1.Master_Document_Id = dbo.Gen_Documents_Table.Id
    WHERE        (Gen_Documents_Table_1.State = N'30') AND (dbo.Gen_Documents_Table.Document_No = N'3250824')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 2011-04-14
      • 1970-01-01
      • 2014-11-19
      • 2012-06-11
      • 2020-05-05
      相关资源
      最近更新 更多