Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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
Mysql SQL查询-从一组客户端筛选最大日期_Mysql_Sql - Fatal编程技术网

Mysql SQL查询-从一组客户端筛选最大日期

Mysql SQL查询-从一组客户端筛选最大日期,mysql,sql,Mysql,Sql,我现在有两张桌子;客户及报税表 客户: Sysref(PK) FullName 1 ABC Ltd 2 XYZ Ltd 纳税申报表: CustomerSysref(FK) TaxReturnYear 1 2016 1 2015 作为查询的一部分,我将纳税申报表加入到Customer表中 FROM CUSTOMERS CUS LEFT JOIN TaxReturns CITR ON CITR

我现在有两张桌子;客户及报税表

客户

Sysref(PK) FullName
1          ABC Ltd
2          XYZ Ltd
纳税申报表

CustomerSysref(FK) TaxReturnYear
1                  2016
1                  2015
作为查询的一部分,我将纳税申报表加入到Customer表中

FROM CUSTOMERS CUS
LEFT JOIN TaxReturns CITR ON CITR.ClientSysRef = CUS.SYSREF
我需要查询最大日期的结果。以上面的例子为例,我需要查询来输出2016年的纳税申报年度。有人能指引我吗

如果我想添加一个where子句,当SubmissionDate等于1900时,该子句将不显示行?榜样

Tax Returns

CustomerSysref(FK) TaxReturnYear SubmissionDate
1                  2016          1900
1                  2015          2016 

WHERE CITR.SubmissionDate != '1900'
结果将是

2015年,尽管2016年更大,但提交日期为1900年

需要显示最终结果

来自表customers的Sysref&FullName

纳税申报表中的纳税申报年度和提交日期

...
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 
根据问题编辑更正。

如果我答对了

...
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 

根据问题编辑更正。

添加一些样本表数据和预期结果!返回SubmissionDate是一个有点不同的问题。在这种情况下,首先应该返回哪一个<代码>CustomerSysref(FK)纳税申报年度提交日期
1 2016 1900
1 2014 2016
1 2014 2015
1 2014 2016和1 2014 2015
都很好,因为在同一年中不应该有多个纳税申报添加一些样本表数据和预期结果!返回SubmissionDate是一个有点不同的问题。在这种情况下,首先应该返回哪一个<代码>CustomerSysref(FK)纳税申报年度提交日期
1 2016 1900
1 2014 2016
1 2014 2015
1 2014 2016和1 2014 2015
都很好,因为在同一年中不应该有超过一个纳税申报,感谢代码,我需要在SubmissionDate等于1900时过滤掉行。我已经更新了上面的原始问题。你能在这方面指导我吗?再次感谢你的更新。如何显示提交日期?我已经更新了上面的问题和最终结果。你能在这方面指导我吗?谢谢你的代码,工作得很有魅力:)当提交日期等于1900时,我需要过滤掉行。我已经更新了上面的原始问题。你能在这方面指导我吗?再次感谢你的更新。如何显示提交日期?我已经更新了上面的问题和最终结果。你能在这方面指导我吗?