[英]SQL using inner join
这就是我的情况。 我有3个表( tblEmployeesinfo
, sqlSumrepMTC
, sqlSumrepMTC15th
),我使用内部sqlSumrepMTC15th
显示此信息:
SELECT
SQLSummRepMTC."RepCompany", SQLSummRepMTC."WHTax",
SQLSummRepMTC."Company", SQLSummRepMTC."MonthName",
SQLSummRepMTC."YearVal", SQLSummRepMTC."Basis",
tblEmployeesInfo."LastName", tblEmployeesInfo."FirstName",
tblEmployeesInfo."Company", tblEmployeesInfo."MInitial",
tblEmployeesInfo."Division", sqlSumrepMTC15th."WHTax",
sqlSumrepMTC15th."Basis"
FROM
{
oj ("BIOMETRICS"."dbo"."SQLSummRepMTC" SQLSummRepMTC INNER JOIN
"BIOMETRICS"."dbo"."tblEmployeesInfo" tblEmployeesInfo
ON SQLSummRepMTC."EmployeeNo" = tblEmployeesInfo."EmployeeNo")
INNER JOIN "BIOMETRICS"."dbo"."sqlSumrepMTC15th" sqlSumrepMTC15th
ON tblEmployeesInfo."EmployeeNo" = sqlSumrepMTC15th."EmployeeNo"
}
ORDER BY
SQLSummRepMTC."Basis" ASC,
tblEmployeesInfo."Company" ASC,
tblEmployeesInfo."LastName" ASC
假设有一个雇员在sqlSumrepMTC
有其字段Taxvalue
为50的记录,但是在sqlSumrepMTC15th
上却不存在。我的问题是该记录将不会显示在内部sqlSumrepMTC15th
中,因为它在两个表中都没有值。 我要实现的只是在另一个表中不存在时显示0值。 这是我的报告样子。
Employeeno employeename 15th 30th
01 james 10 20
02 Chris NULL 50
第一条记录将出现在报告中,因为它在两个表中都有两条记录,而第二条记录由于在第一个表中为空而不会存在。 如果一个值是null或另一个值缺失,我只需要它出现在报告中即可。 提前致谢
您有两个加入! 因此,如果sqlSumrepMTC15th
没有记录, sqlSumrepMTC15th
需要用LEFT JOIN替换第二个联接。 如果有可能, sqlSumrepMTC15th
和 tblEmployeesInfo
没有sqlSumrepMTC15th
记录, sqlSumrepMTC15th
需要用LEFT JOIN替换两个联接。
此外,您可以将NULL替换为
SELECT CASE
WHEN attribute IS NULL
THEN 0
ELSE attribute
END AS resultColumName,
nextAttribute
FROM ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.