SQL Server:使用现有表中的多个列更新两个表的联接语句以匹配

时间:2019-07-29 06:36:35

标签: sql-server

我希望我可以清楚地解释问题陈述。我需要用新列(First)更新现有表(Ticket_No_Calc)。基本上,我必须在第二张表(Doc_Header列中的第一张表中查找/引用两列(Doc_NoDoc_No)。

所需的列Ticket_No_Calc的结果是从列Ticket_No中检索的。

下面是第一张表的示例数据的屏幕截图

First Table

这是第二张表的示例数据的屏幕截图

Second Table

当前,在Excel中,我使用以下公式在现有表中获取所需的列

=IFERROR(VLOOKUP(FIRST!B2,'SECOND'!A:B,1,0),(VLOOKUP(FIRST!C2,'SECOND'!A:B,1,0)))

我不确定如何在SQL中执行此操作。我知道,如果我只需要引用一列Doc_Header,就可以使用以下公式在SQL中完成此操作:

UPDATE A 
SET A.Ticket_No_Calc = B.Ticket_No 
FROM First AS A 
LEFT JOIN Second AS B ON A.Doc_Header = B.Doc_NO ;

但是我需要引用现有表中的两列。有人可以帮我吗?我对SQL非常陌生,有时我一直在研究以获取正确的命令,但是我似乎无法破解它。非常感谢您的帮助。

谢谢。

3 个答案:

答案 0 :(得分:0)

以下陈述可能会帮助

UPDATE A 
SET A.Ticket_No_Calc = B.Ticket_No 
FROM First AS A 
INNER JOIN Second AS B ON (A.Doc_Header = B.Doc_NO) OR (A.Doc_NO = B.Doc_NO) ;

答案 1 :(得分:0)

根据提供的示例数据,这是查询似乎不正确。但是根据您的问题中提到的评论,您可以应用带有or子句的连接。

UPDATE A 
SET A.Ticket_No_Calc = B.Ticket_No 
FROM First AS A 
LEFT JOIN Second AS B ON A.Doc_Header = B.Doc_NO OR A.DOC_NO=B.DOC_NO ;

答案 2 :(得分:-1)

尝试一下:

<h3>Employees Directory</h3>
<div class="row">
<div *ngFor="let randomdata of randomdata">
    <div class="card" style="height: 300px;width:250px;">
        <img class="card-img-top" style="width:150px;" src="/src/images/avatar.png" alt='Employee Image'>
        <div class="card-body">
            <p>First Name: {{randomdata.first_name}}</p>
            <p>Last Name: {{randomdata.last_name}}</p>
            <p>Gender: {{randomdata.gender}}</p>
            <p>Email: {{randomdata.email}}</p>
            <p>Street Address:{{randomdata.location}}</p>
        </div>
    </div>
</div>