我只想查找在其自己的30天,3个月和1年期限内有一个以上close_date实例的帐户,这些实例在其自己的每月,季度和年度到期日期结束。但是,每个帐户都有其自己的到期日期范围。 我的WHERE子句似乎无法弄清楚如何实现正确的30天,每季度和每年的范围。
我不确定BETWEEN子句是否合适,还是应该使用大于/小于。
SELECT a.acct, COUNT(d.closed_date) AS cd, a.billing_expiration_date
FROM docupaid d
INNER JOIN account a ON a.acct=d.acct
WHERE (d.closed_date) BETWEEN (a.bill_expiration_date minus 30 days) AND a.billing_expiration_date
GROUP BY acct desc
HAVING cd>1
答案 0 :(得分:0)
您可以使用DATE_SUB功能:
SELECT a.acct,
COUNT(d.closed_date) AS cd,
a.billing_expiration_date
FROM docupaid d
INNER JOIN account a ON a.acct=d.acct
WHERE d.closed_date BETWEEN DATE_SUB(a.bill_expiration_date, INTERVAL 30 DAY)
AND a.billing_expiration_date
GROUP BY acct desc
HAVING cd > 1