|
Как найти ближайшую предыдущую дату
|
|||
---|---|---|---|
#18+
Добрый день. Мне нужно выбрать значения дата, тип, минимальное, максимальное из таблиц и потом к ним присоединить значения ближайшей предыдущей даты ( в таблице предыдущая не обязательно вчерашняя). Я сделал это на основе cte. Но вопрос - как найти предыдущую дату вроде dateadd не подойдет т.к. мы то не знаем предыдущую дату Вот мой запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2021, 15:49 |
|
Как найти ближайшую предыдущую дату
|
|||
---|---|---|---|
#18+
вот в этой строке какую функцию использовать? Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2021, 16:17 |
|
Как найти ближайшую предыдущую дату
|
|||
---|---|---|---|
#18+
Проще всего через lag/lead, ну, или перенумеровать исходную выборку в порядке возрастания даты, и связать ее саму с собой (left join) по этому номеру = номер - 1 Можно еще через outer apply (select top(1) * from ... where Дата < нужной_даты Order by Дата), но это очень нехорошо с т.з. производительности. Оформите вопрос в соответствии с требованиям форума - вам накидают примеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2021, 16:49 |
|
Как найти ближайшую предыдущую дату
|
|||
---|---|---|---|
#18+
uaggster, Спасибо, вроде получилось. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Так же? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2021, 17:21 |
|
Как найти ближайшую предыдущую дату
|
|||
---|---|---|---|
#18+
Ээээ... row_number() over(partition by t.city Order by t.reportdate ASC) num, наверное. Ну и вот так min(t.cost), max(t.cost) - не взлетит. Нужно, если уж вы уж в таком стиле хотите сделать min(t.cost) over(partition by t.city) min_cost, max(t.cost) over(partition by t.city) max_cost ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2021, 11:16 |
|
|
start [/forum/topic.php?fid=46&fpage=14&tid=1684277]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
125ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 250ms |
total: | 464ms |
0 / 0 |