我必须计算在一个月的前“N”天支付的所有发票。我有两张桌子
. INVOICE:有发票信息。唯一重要的字段称为“datePayment”
. HOLYDAYS:这是一个单列表。此表中的条目采用“2009-01-01”、2009-05-01 等形式。
我也应该考虑周六和周日(这可能不是问题,因为我可以在 Hollidays 表中插入这些日子,以便在必要时将它们视为 hollidays)
问题是计算哪个是“支付限额”。
select count(*) from invoice
where datePayment < PAYMENTLIMIT
我的问题是如何计算这个 PAYMENTLIMIT。其中 PAYMENTLIMIT 是“每个月的第五个工作日”。
查询应在 Mysql 和 Oracle 下运行,因此应使用标准 SQL。
有什么提示吗?
编辑为了与问题的标题一致,伪查询应如下所示:
select count(*) from invoice
where datePayment < FIRST_WORKING_DAY + N
那么问题可以简化为计算每个月的FIRST_WORKING_DAY。