|
Выполнение запроса в цикле на уровне SQL запроса
|
|||
---|---|---|---|
#18+
Доброго времени суток! Коллеги, требуется помощь в решении задачки. Дано: Имеется вот такой запрос который транспонирует временной ряд в более реляционный вид (запрос упрощен и представлен для одного тега). Запрос вытаскивает последнее значение за сутки. На вход получаю произвольную дату на основе которой необходимо сформировать отчет за месяц, пусть будет 19.07.2024 Код: SQL 1. 2. 3. 4. 5. 6. 7.
На уровне SQL запроса, как-то разложить дату от 19 числа по 1 число с шагом в сутки. Поочередно подставить каждую дату в запрос и в результате получить набор значений по дням с 1 по 19 число месяца. Буду очень признателен за любую посильную помощь, времени совсем нет, а заказчик не ждет. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2024, 13:08 |
|
Выполнение запроса в цикле на уровне SQL запроса
|
|||
---|---|---|---|
#18+
Я думаю вам надо в подзапросе сгенерировать нужные даты, как тут https://stackoverflow.com/questions/14113469/generating-time-series-between-two-dates-in-postgresql и сджойнить их с вашим запросом ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2024, 13:37 |
|
Выполнение запроса в цикле на уровне SQL запроса
|
|||
---|---|---|---|
#18+
Я думаю вам надо в подзапросе сгенерировать нужные даты, как тут https://stackoverflow.com/questions/14113469/generating-time-series-between-two-dates-in-postgresql и сджойнить их с вашим запросом ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2024, 15:17 |
|
Выполнение запроса в цикле на уровне SQL запроса
|
|||
---|---|---|---|
#18+
Я думаю вам надо в подзапросе сгенерировать нужные даты, как тут https://stackoverflow.com/questions/14113469/generating-time-series-between-two-dates-in-postgresql и сджойнить их с вашим запросом Код: PL/pgSQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2024, 16:38 |
|
Выполнение запроса в цикле на уровне SQL запроса
|
|||
---|---|---|---|
#18+
qwerty5000 [игнорируется] Вот у такой есть шанс на жизнь: Код: PL/pgSQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
ERROR: ошибка синтаксиса (примерное положение: "AS")
LINE 13: ...cordtype = 'inner' then h.valdouble else NULL END AS dValue)...
^
ОШИБКА: ошибка синтаксиса (примерное положение: "AS")
SQL state: 42601
Character: 445 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2024, 12:32 |
|
Выполнение запроса в цикле на уровне SQL запроса
|
|||
---|---|---|---|
#18+
qwerty5000 [игнорируется] Теперь что-то непонятное получаю Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
ПРЕДУПРЕЖДЕНИЕ: Обнаружен устаревший параметр конфигураци: 'aehistorianname'. Его поддержка будет прекращена в следующей версии!
ПРЕДУПРЕЖДЕНИЕ: Обнаружен устаревший параметр конфигураци: 'historianname'. Его поддержка будет прекращена в следующей версии!
ПРЕДУПРЕЖДЕНИЕ: Обнаружен устаревший параметр конфигураци: 'sourceae'. Его поддержка будет прекращена в следующей версии!
ПРЕДУПРЕЖДЕНИЕ: Обнаружен устаревший параметр конфигураци: 'sourceda'. Его поддержка будет прекращена в следующей версии!
ERROR: в запросе нет назначения для данных результата
HINT: Если вам нужно отбросить результаты SELECT, используйте PERFORM.
CONTEXT: функция PL/pgSQL inline_code_block, строка 10, оператор SQL-оператор
ОШИБКА: в запросе нет назначения для данных результата
SQL state: 42601 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2024, 12:43 |
|
Выполнение запроса в цикле на уровне SQL запроса
|
|||
---|---|---|---|
#18+
разобрался, вот такая конструкция работает, но почему-то когда начинаю вводить переменную вместо жесткой даты материт Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
ERROR: ошибка синтаксиса (примерное положение: "reportDate")
LINE 12: ...are iDay int:= (SELECT EXTRACT(DAY FROM TIMESTAMP reportDate...
^
ОШИБКА: ошибка синтаксиса (примерное положение: "reportDate")
SQL state: 42601
Character: 361 ... |
|||
:
Изменено: 22.07.2024, 15:31 - qwerty5000
Нравится:
Не нравится:
|
|||
22.07.2024, 15:29 |
|
Выполнение запроса в цикле на уровне SQL запроса
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2024, 15:52 |
|
|
start [/forum/topic.php?fid=53&tid=2186992]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 236ms |
total: | 388ms |
0 / 0 |