【发布时间】:2020-02-12 16:20:19
【问题描述】:
首先,我知道在这一点上足以让自己陷入困境。我正在为 AS/400 系统编写查询。我有一个包含开始日期和结束日期的文件。我想要做的是创建一个查询,可以计算在某个日期范围内打开了多少行项目。 (对于我的应用程序打开定义为:DATE > START_DATE AND (DATE <= END_DATE OR END_DATE = '0'))。我可以手动设置“日期”,但我正试图返回并从历史上批量提取这些信息。我遇到的问题是让它针对日期列表运行此查询。我想要的是输入历史间隔(比如CURRENT_DATE - 5)并输出:
Date Open
20200206 30,000
20200207 31,000
20200210 29,675
20200211 31,375
20200212 32,000
我用于“一次一天”的查询:
SELECT
COUNT(*)
FROM
MYFILE
WHERE
START_DATE < '20200210'
AND (
END_DATE >= '20200210'
OR END_DATE = '0'
)
这很好用,但很耗时。从这里我不知道如何转换到所需的输出......或者即使有可能......但它会加快我的速度。提前致谢。
附:欢迎任何帮助,如果您知道如何在 mySQL 等中完成此操作,请分享。我可以使用它并运行它以使其专门为 AS/400 工作。这就是我现在所处的位置。
**************** 编辑澄清 1. 当前代码 提供的当前代码就是我所拥有的。我不知道从哪里开始 关于我的要求。 2. 示例数据:
Line Item START_DATE END_DATE
1 20200206 20200210
2 20200207 20200210
3 20200207 20200207
- 预期输出:
DATE COUNT
20200205 0
20200206 0
20200207 1
20200210 2
20200211 0
- DBMS 我已更新标签以包含 DB2。 5. 我不相信 GROUP BY 会起作用。
基本上我正在寻找以迭代式的方式计算它。来自我的 python/java 背景,这对我来说很有意义。我不是在寻找 5 天前打开的所有内容,我想从 5 天前开始计算这 5 天中每天打开的订单项数量。如果 GROUP 实际上可以做到这一点,请详细说明并向我展示我的方式的错误。与此同时,我将开始为此进行分组。
【问题讨论】:
-
嗨,欢迎来到 Stack Overflow。请阅读stackoverflow.com/help/minimal-reproducible-example 和stackoverflow.com/help/how-to-ask。在这个示例中,我们需要查看您当前的代码,示例数据至关重要。此外,查看您的代码产生的结果与您的预期结果是非常有益的。请参阅:meta.stackoverflow.com/questions/271055/…。另外,您使用的是什么
DBMS?请用那个标记你的问题(我想你提到了mySQL) -
如果我没记错的话,AS/400 是 IBM 的 DB2 正确吗?如果是这样的话,你能用 DB2 更新问题标签吗?
标签: sql date db2 datefilter