查询最后续订许可证

时间:2014-03-10 14:36:58

标签: sql sql-server-2012

假设我每年都有一个续订许可证的客户。我如何查询客户在每个部分更新许可证的最后一年...我尝试了这个代码并且它工作正常但突然它只产生了2014年的最大年份,尽管有些客户没有更新他们的自2012年以来的许可证......

SELECT @last_expired_date = MAX(expired_license_date)
    FROM entrepreneur
    RIGHT OUTER JOIN Firm_info
        ON entrepreneur.entre_ID = Firm_info.entre_ID
    RIGHT JOIN Section
        ON Firm_info.Section_ID = Section.Section_id
    RIGHT JOIN license
        ON Firm_info.firm_no = license.firm_no
    RIGHT JOIN license_operations
        ON license.license_serial = license_operations.license_serial
    WHERE Section.Section_id = @section_no
    GROUP BY license.license_serial

1 个答案:

答案 0 :(得分:1)

您需要在SELECTGROUP BY条款中添加客户名称,该条款将为您提供客户列表以及他们续订许可证的最新年份。

作为注释:在连接中使用表名的别名。这有助于确定哪些列来自哪些表。此外,我避免使用RIGHT JOIN,因为它可能会让您更难理解您获得的数据。