【问题标题】:Years calculations inside stored procedure存储过程中的年计算
【发布时间】:2013-12-14 17:16:44
【问题描述】:

我之前的问题与这个问题有关,这里已经回答了:LINK

这个查询非常适合我,但是我需要做一些更改。 与其将每个月都显示为债务,我只需将一年显示为债务。

例如: 我需要检查这一年是否有任何付款,如果没有,那么我需要在我的表格中显示那一年。 在我之前的输出中,我有这样的事情:

Member's code  |  Debt ( Months )        
555-12         |     2-2013        
555-12         |     4-2013       

现在我需要这个:

Member's code  |  Debt ( Years )
555-12         |     2012

这是我尝试过的:Fiddle 在此示例中,您可以看到我有一个不应该存在的 2013 年。

【问题讨论】:

    标签: mysql sql database date


    【解决方案1】:

    以下查询返回自第一个成员资格以来的年份,没有匹配项:

    select m.*, (year(Member_since) + n.n) as YearNotPaid
    from members m join
         numbers n
         on year(Member_since) + n.n <= year(now()) left outer join
         membership ms
         on ms.code = m.code and
             year(Member_since) + n.n = year(ms.paid)
    where ms.id is null;
    

    如果您只想为一位成员添加AND m.Code = '555-12',则可以添加。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-18
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      相关资源
      最近更新 更多