Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL запрос, дата  [new]
slonyra
Member

Откуда:
Сообщений: 27
Будьте добры, подскажите.
Нужно при запросы предусмотреть, чтобы запрос вывел дату погашения, которая не находятся между максимальной датой( дата from dm.выгрузка) и сегодняшней датой. Нулевые значения заменяются на 0. С моим кодом беда выходит
5 ноя 15, 06:45    [18371252]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, дата  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
slonyra
С моим кодом беда выходит
Покажите код
5 ноя 15, 07:07    [18371269]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, дата  [new]
slonyra
Member

Откуда:
Сообщений: 27
...
a.дата погашения not it between max(a.дата) and isnull(a.дата, cast (getdate() as date),0)
5 ноя 15, 07:14    [18371275]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, дата  [new]
Добрый Э - Эх
Guest
slonyra
...
a.дата погашения not it between max(a.дата) and isnull(a.дата, cast (getdate() as date),0)
в одном предложении и столько ошибок синтаксиса... есть подозрение, что ты не совсем понимаешь принцип построения запросов и область применения агрегатов...
5 ноя 15, 07:22    [18371280]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, дата  [new]
Добрый Э - Эх
Guest
slonyra,

и еще немного пищи для размышлений:
а твоя MAX(дата) может быть больше, чем текущая дата? И вот если может, то как ты планируешь применить свой BETWEEN?
5 ноя 15, 07:24    [18371282]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, дата  [new]
slonyra
Member

Откуда:
Сообщений: 27
Согласен. Запросы с датами не понимаю. Мне нужно выбрать дату погашения которая не находится между максимальной датой столбца дата и сегодняшней. Ошибку понял на счет сегодняшней датой. Максимальная дата точно не может быть равна сегодняшней
5 ноя 15, 07:37    [18371293]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, дата  [new]
Добрый Э - Эх
Guest
slonyra,

возможные пути решения задачи:
1) [NOT] EXISTS подзапрос
2) скалярный подзапрос с агрегацией для получения максимального значения даты по столбцу
3) использование оконных функций (max() over)
5 ноя 15, 08:18    [18371337]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, дата  [new]
Добрый Э - Эх
Guest
slonyra
Согласен. Запросы с датами не понимаю. Мне нужно выбрать дату погашения которая не находится между максимальной датой столбца дата и сегодняшней. Ошибку понял на счет сегодняшней датой. Максимальная дата точно не может быть равна сегодняшней

как соотносятся между собой максимальная дата столбца и сегодня?
если max(дата) больше или равна, чем сегодня, то условие будет простое:
дата < сегодня
если же max(дата) < сегодня
то, получается, тебя интересует всё, кроме одной даты, которая равна максимуму.

вот я и спрашиваю, что на самом деле ты хочешь получить? задачу опиши подробнее, с описанием предметной области, в которой она возникла.
5 ноя 15, 08:24    [18371341]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос, дата  [new]
slonyra
Member

Откуда:
Сообщений: 27
У нас есть определенная база с данными, данные в ней выгружаются каждый вечер, но бывает так, что данные забыли выгрузить или не захотели.. Поэтому нужно условие в запросе, чтобы данные выводились не за вчерашнюю дату и не в промежутке между максимальной датой таблицы "выгрузка" и сегодняшней. Потому что в таком случае запрос выдаст пустую табличку
5 ноя 15, 08:38    [18371365]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить