我有一个SQL查询来获取最近13个月的列总和,如果缺少任何一个月,我该如何添加零

问题描述 投票:0回答:1

我有一个付款表,我在其中更新订阅续订日期和金额,现在我有一个查询来选择以前的13个月的金额总和列,但是,如果在选择最近13个月的记录。

SELECT DATE_FORMAT(dtSubscriptionRenewalDate, "%b - %Y") AS month, SUM(intPaymentAmount) as usd13mon FROM `tbl_pi_payment` WHERE strCurrencyCode = 'USD' and dtSubscriptionRenewalDate <= NOW() and dtSubscriptionRenewalDate >= Date_add(Now(),interval - 13 month) GROUP BY DATE_FORMAT(dtSubscriptionRenewalDate, "%Y-%m")

month      usd13mon
Oct - 2018 55
Dec - 2018 79
Jan - 2019 16
Feb - 2019 93
Mar - 2019 80
Apr - 2019 83
May - 2019 34
Jun - 2019 23
Jul - 2019 25
Aug - 2019 37
Sep - 2019 17
Oct - 2019 44

在上述输出中,由于表中有可用数据,因此缺少2018年11月。

mysql add date-format zero dateadd
1个回答
0
投票

[您可以尝试引入一个日历表,该表代表要显示在报告中的每个月:

© www.soinside.com 2019 - 2024. All rights reserved.