JOIN中的WHERE子句

时间:2019-06-17 11:35:02

标签: sql-server

我很想为我遇到的问题寻找答案,但是找不到任何东西。我有两个表Client和FactChange。 Client表具有

ClientName, DOB, ClientID, ClientSalary, SpouseName, ClientAge, SpouseAge, Spouse Salary.

FactChange表具有

FactID, ClientID. 

因此,客户端中的所有常见更改都会记录在事实上的更改中,该更改基于“类型”列进行了分类。

示例:客户增加的工资将记录为工序:ADD类型:工资变更金额:45000

注意:FactChange表可以在Client表中包含一个clientID的多行。同样,没有必要在客户表中的每个客户都在FactChange表中有记录。

考虑到我有10个客户,而6个客户的薪水已更改,即使FactChange没有Type:SalaryChage行,我也想要一个我想要所有客户的薪水的结果集。

我试图用“ Where”子句联接两个表,但是我无法获取Clients表中的行,而FactChange表中的行。

SELECT CleintID, ClientName, SpouseName, Amount 
FROM Client c JOIN FactChange fc 
ON c.ClientID=fc.ClientID WHERE Type like 'SalaryChange'

预期结果,我希望“客户”表中存在的所有客户的金额。按照示例,结果集应该有10行。对于实际上不存在的clientID,Amount可以为0

0 个答案:

没有答案