Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL使用另一个表中的值更新一个表_Sql Server_Tsql - Fatal编程技术网

Sql server SQL使用另一个表中的值更新一个表

Sql server SQL使用另一个表中的值更新一个表,sql-server,tsql,Sql Server,Tsql,我有下面的SQL语句- SELECT e.*, i.CaseNo, c.Claimant, c.Defendant, c.ClientID FROM tblExpenses AS e INNER JOIN tblInvoices AS i ON e.InvNo = i.InvNo INNER JOIN tblCases AS c ON i.CaseNo = c.CaseNo 这演示了三个表之间的链接 tblInvoices有一个主键[InvNo],它也是tblExpenses中的外键,因此将每

我有下面的SQL语句-

SELECT e.*, i.CaseNo, c.Claimant, c.Defendant, c.ClientID
FROM tblExpenses AS e
INNER JOIN tblInvoices AS i ON e.InvNo = i.InvNo
INNER JOIN tblCases AS c ON i.CaseNo = c.CaseNo
这演示了三个表之间的链接

tblInvoices
有一个主键
[InvNo]
,它也是
tblExpenses
中的外键,因此将每个费用与相关发票链接起来

tblCases
有一个主键
[CaseNo]
,它也是
tblInvoices
中的外键,从而将每个发票链接到特定的案例

最后,
tblCases
中的每个案例都有一个名为
[ClientID]
的列,用于标识发票发送给的客户

现在,
tblExpenses
也有一个外键
[ClientID]
,但目前该列未填充。我想做的是,通过上述链接,使用
tblExpenses
中的
[ClientID]
填充
[ClientID]
,这些链接来自
tblCases

但是,我不清楚如何重写我的
SELECT
查询,以便在
tblExpenses
中填充
[ClientID]


有人可以帮忙吗?

您已经有足够的select查询来获取所需信息。您只需要将其转换为更新查询

UPDATE e SET e.ClientID=c.ClientID
FROM tblExpenses AS e
INNER JOIN tblInvoices AS i ON e.InvNo = i.InvNo
INNER JOIN tblCases AS c ON i.CaseNo = c.CaseNo

您已经有足够的select查询来获取所需的信息。您只需要将其转换为更新查询

UPDATE e SET e.ClientID=c.ClientID
FROM tblExpenses AS e
INNER JOIN tblInvoices AS i ON e.InvNo = i.InvNo
INNER JOIN tblCases AS c ON i.CaseNo = c.CaseNo