Sql 查询上次牌照续期

Sql 查询上次牌照续期,sql,sql-server-2012,Sql,Sql Server 2012,假设我有一个客户每年都有执照续期。我该如何查询客户在过去一年中是否已按部门更新其许可证。。。我尝试了这个代码,它工作得很好,但突然之间,它只产生了2014年这一节中的最大年份,尽管有些客户自2012年以来没有续签他们的许可证 SELECT @last_expired_date = MAX(expired_license_date) FROM entrepreneur RIGHT OUTER JOIN Firm_info ON entrepreneur.entre_

假设我有一个客户每年都有执照续期。我该如何查询客户在过去一年中是否已按部门更新其许可证。。。我尝试了这个代码,它工作得很好,但突然之间,它只产生了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

您需要将客户名称添加到您的
选择
分组依据
子句中,这将为您提供客户列表以及他们最近更新许可证的年份


请注意:对联接中的表名使用别名。这有助于识别哪些列来自哪些表。此外,我避免使用
右连接
,因为这会使您更难理解所获得的数据。

但现在我有一个名为payed_fine的列,该列接受客户支付的罚款,并将fine_amt列的值设为0,现在,我为同一个客户端获得两行,一行的payed_fine列值为0,另一行的payed_amt列值为0,如何仅显示payed_amt行,而不是添加到select和group by list,您应该将其放入MAX aggregate函数
MAX(payed_fine)
column