我目前有两张桌子;客户和纳税申报表
Customers
:
Sysref(PK) FullName
1 ABC Ltd
2 XYZ Ltd
Tax Returns
:
CustomerSysref(FK) TaxReturnYear
1 2016
1 2015
作为查询的一部分,我将退税纳入客户表。
FROM CUSTOMERS CUS
LEFT JOIN TaxReturns CITR ON CITR.ClientSysRef = CUS.SYSREF
我需要查询最大日期的结果。以上面的例子为例,我需要查询输出2016年的TaxReturnYear。有人可以指导我吗?
如果我想添加一个where子句,当SubmissionDate等于1900时,该子句不会显示该行?例子;
Tax Returns
CustomerSysref(FK) TaxReturnYear SubmissionDate
1 2016 1900
1 2015 2016
WHERE CITR.SubmissionDate != '1900'
结果将是;
2015尽管2016年规模较大,但SubmissionDate为1900年。
需要显示最终结果;
Sysref&表客户的FullName
表退税的TaxReturnYear和SubmissionDate
答案 0 :(得分:2)
如果我做对了
...
FROM CUSTOMERS CUS
LEFT JOIN
(SELECT CustomerSysref, max(TaxReturnYear) as TaxReturnYear
FROM TaxReturns
WHERE SubmissionDate != '1900'
GROUP BY CustomerSysref ) AS CITR
ON CITR.ClientSysRef = CUS.SYSREF
-- added to get submissionDate
LEFT JOIN TaxReturns tr2
ON CITR.CustomerSysref = tr2.CustomerSysref AND CITR.TaxReturnYear = tr2.TaxReturnYear
根据问题编辑进行了更正。