每个部门每个月的账单周期应该只有一张账单。
我的目标是找出有多少部门受到了不止一个部门的打击 同一计费周期内的账单。
上下文:
我当前的查询设置为只检查应该按月计费的部门。
部门表与报表表具有一对多关系(一个部门在每个计费周期结束时应有一个报表)
每个账单都有自己的截止日期
a、 payment\u period=1表示每月计费的部门
我还尝试在每个帐户的特定到期日之间进行搜索。
我的查询的问题是,它输出结账结束日期的总数,而不是只检查一个结账周期内的多个事件。
如何将此查询修改为仅输出在每个部门的计费周期内发生多个月度账单示例的部门?
查询:
SELECT s.department, s.statement, COUNT(s.closed_date) AS sd, from_unixtime(s.closed_date)
FROM statement s
INNER JOIN department d
ON s.department=d.department
WHERE from_unixtime(s.closed_date) BETWEEN
DATE_SUB(from_unixtime(d.exp_date), INTERVAL 1 MONTH) AND
from_unixtime(d.exp_date)
AND d.period=1
GROUP BY s.statement DESC
HAVING sd>1
样本输出:
department statement sd closed_date
1719712 9351464 3 2018-09-24
1719709 9351463 2 2018-09-24
1719708 9351462 2 2018-09-24
1719665 9351457 3 2018-09-24
1条答案
按热度按时间dxpyg8gm1#
看起来你在尝试按月份分组。
在mysql中,这是一个
LAST_DAY()
功能。你需要的模式是:因此,对于您的情况,您首先要找到在任何给定月份有多张发票的情况。
我不得不猜测,因为我不明白
exp_date
. 这应该是你想要的。这将提供一个结果集,每个部门每月有一行,经过过滤,因此它仅显示具有多个发票的部门。