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

Откуда:
Сообщений: 32
Добрый день!
Есть база данных в Access, в ней, к примеру, 3 столбца
Дата занесения дела (в формате дд.мм.гггг), ФИО и Статус дела.
Подскажите, как сделать запрос, чтобы в случае, если с момента даты занесения дела прошло 10 дней, и статус дела не "Закрыто", то значения выпадали в запрос.
К примеру
28.10.2018 Иванов А.А. Активно - не попадает в выборку
15.10.2018 Петров А.А. Активно - попадает в выборку.
Пробовал сделать

Select [Дата занесения дела], [ФИО], [Статус]
From [Инциденты]
WHERE [Дата занесения дела]>=dateadd(day,-10,now()) and [Статус]='Закрыто'

Выдает ошибку.
29 окт 18, 14:36    [21718029]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Сергей2017, а чего за ошибка то?
29 окт 18, 14:38    [21718031]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
bubucha
Member

Откуда:
Сообщений: 5407
...dateadd(day,-10,now())... - что за day ?
29 окт 18, 14:43    [21718041]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
__Michelle
Member

Откуда:
Сообщений: 3110
SELECT *
FROM [Инциденты]
WHERE Date()-10>=[Дата занесения дела] AND [Статус]<>'Закрыто'
29 окт 18, 14:45    [21718043]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 331
Ошибка, видимо, из за day - SQL думает, что это поле, но не находит.
Надо dateadd('d',-10,now())
Но я бы сделал проще:
WHERE [Дата занесения дела]>=(date()-10) and [Статус]='Закрыто'
29 окт 18, 14:46    [21718044]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
DateAdd("d", -10, now)
29 окт 18, 14:47    [21718046]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6263
А чем проще?
Наличием лишних скобок и заменой "=" на "<>"?
__Michelle
WHERE Date()-10>=[Дата занесения дела] AND [Статус]<>'Закрыто'
Кривцов Анатолий
Но я бы сделал проще:
WHERE [Дата занесения дела]>=(date()-10) and [Статус]='Закрыто'
29 окт 18, 15:40    [21718132]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 331
sdku
А чем проще?
Наличием лишних скобок и заменой "=" на "<>"?

Я отвечал ТС и имел ввиду излишнее использование функции dateadd в операциях с днями.
Логику фильтра я не трогал, хотя она противоречит описанным ТС условиям, а у Michelle логика, вроде бы, правильная.
Тут надо спросит ТС, как понимать его слова "то значения выпадали в запрос".
1. то значения выпадали ИЗ запросА
2. то значения ПОпадали в запрос

Что касается лишних скобок, то без них в выражении Date()-10>=[Дата занесения дела] может возникнуть неоднозначная ситуация - какое действие выполнять первым. Со скобками надежнее.
Кстати, коллеги, как вы считаете?
(Date()-10)>=[Дата занесения дела]
и
[Дата занесения дела]<=(Date()-10)
эти выражения равноценны с точки зрения использования индексов?
29 окт 18, 16:51    [21718205]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить