Начнем с того, что на данный момент я знаю ровно столько, чтобы навлечь на себя неприятности. Я работаю над написанием запроса для системы AS/400. У меня есть файл, который содержит дату начала и дату окончания. Что я хочу сделать, так это создать запрос, который может подсчитать, сколько позиций было открыто для диапазона дат. (для моего приложения open определяется как: 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'
)
Это прекрасно работает, но отнимает много времени. Отсюда я понятия не имею, как перейти к желаемому результату... или даже если это возможно... но для меня это ускорит процесс. Заранее спасибо.
P.S. любая помощь приветствуется, если вы знаете, как это сделать в 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
- СУБД Я обновил тег, включив в него DB2. 5. Я не верю, что GROUP BY будет работать.
В основном я ищу, чтобы это вычислялось итеративным способом. Исходя из моего фона python/java, это имеет для меня смысл. Я не ищу все, что было открыто 5 дней назад, я хочу начать 5 дней назад и подсчитать, сколько позиций было открыто каждый из этих 5 дней. Если это действительно возможно с GROUP, пожалуйста, уточните и покажите мне ошибку моего пути. Тем временем я начну возиться с группировкой для этого.
DBMS
вы используете? Пожалуйста, отметьте свой вопрос этим (я думаю, вы упомянулиmySQL
) - person wundermahn   schedule 12.02.2020