【发布时间】:2010-10-25 08:18:10
【问题描述】:
我必须计算在一个月的前“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。
【问题讨论】:
-
第二张桌子的正确拼写是“holiday”
-
其实这个表叫做'Feiertag'。 :-) 无论如何,感谢您的评论。会改正的。
-
我无法理解您的问题。您想知道如何找到每个月的第一个工作日或付款限额是多少?付款限制是第一个工作日+5个工作日吗?
标签: sql date-arithmetic