powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / JOIN по вчерашней дате
3 сообщений из 3, страница 1 из 1
JOIN по вчерашней дате
    #39944454
voodoos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица с полем типа data и несколько полей типа int.

Мне необходимо в select приджоинить эту же таблицу с записями на день раньше и вывести разницу в int полях.

Делаю вот так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT 
[This].[Date] as [Date], 
[This].[Tested] as [Tested],
[This].[Tested] - [Yester].[Tested] as [Tested Range],
[This].[Infected] as [Infected], 
[This].[Infected] - [Yester].[Infected] as [Infected Range], 
[Yester].[Cured] as [Cured yester],
[This].[Cured] - [Yester].[Cured] as [Cured Range],
[This].[Died] as [Died],
[This].[Died] - [Yester].[Died] as [Died Range]
FROM [Day] as [This]
LEFT JOIN [day] as [Yester] on [Yester].[Date] = dateadd(day, -1, [This].[Date])



Но в полях с разницей почему-то 0. Если к выборке добавить еще и выборку поля с датой приджоиной записи, вот так: [Yester].[Date] as [Yester Date], то выбирается правильная дата — дата на день раньше, а вот если добавить еще и выборку какого-нибудь числового поля из приджоиной записи, например вот так: [Yester].[Infected] as [Yester Infected], то там почему-то значение то же, что и в первичной записи, т.е. такое же, как и в [This].[Infected] as [Infected].

Почему так?
...
Рейтинг: 0 / 0
JOIN по вчерашней дате
    #39944465
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voodoos,

Воспользуйтесь функцией LAG и не придумывайте себе грабли.
...
Рейтинг: 0 / 0
JOIN по вчерашней дате
    #39944528
voodoos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
voodoos,

Воспользуйтесь функцией LAG и не придумывайте себе грабли.


Даже не знал про эту функцию. Все получилось. Спасибо!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / JOIN по вчерашней дате
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]