powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помочь с запросом
12 сообщений из 12, страница 1 из 1
Помочь с запросом
    #40101030
Guest1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, добрый день!
Прошу помочь с запросом( прилагаю схему данных):
Есть запрос, который выводит предыдущую дату визита сотрудника в магазин в отдельном столбце рядом со столбцом даты визита
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
 
SELECT e.Shop_code,e.Visits_date,e2.LVisits_date
FROM  Visits e
left join (select Shop_code,Max(e.Visits_date) LVisits_date
from Visits
where Visits_date<=e.Visits_date
Group by Shop_code) e2
on e.Shop_code = e2.Shop_code



Запрос в MS Access выводит ошибку: Ошибка синтаксиса(пропущен оператор) в выражении запроса Max(e.Visits_date) LVisits_date

2)В строке
Код: vbnet
1.
 where Visits_date<=e.Visits_date

-
ошибка, не знаю как правильно написать условие для вывода предыдущей даты.
...
Рейтинг: 0 / 0
Помочь с запросом
    #40101051
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
SELECT e.Shop_code,e.Visits_date, (select Max(e.Visits_date) from Visits where Visits_date<=e.Visits_date) as LVisits_date
FROM  Visits e
...
Рейтинг: 0 / 0
Помочь с запросом
    #40101060
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest1985,
можно используя предикат TOP:
Код: vbnet
1.
SELECT TOP 1 * FROM tbl WHERE ваше условие ORDER BY полеСдатой DESC 

Это общий пример,но судя по тому что Вы написали возникают вопросы по схеме данных-хотелось бы на нее взглянуть
...
Рейтинг: 0 / 0
Помочь с запросом
    #40101069
Guest1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

к сожалению запрос не выводит предыдущую дату, выводит такую же дату в другой столбец.
Нужна именно дата предыдущая например:
Исходная таблица:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Employee_code	Shop_code	Visits_date	production_quantity	total_production_quantity
1		1		               01.09.2021		10	                    20
2		1		               03.09.2021		10	                    30
3		2		               03.09.2021		5	                    14
2		3		               08.09.2021		3	                     3
3		3		               11.09.2021		5	                    10


Что должно получиться:


Employee_code	Shop_code	Visits_date  Previous Visits_date production_quantity	total_production_quantity
1		1		   01.09.2021  Null		     10	                                         20
2		1		   03.09.2021 01.09.2021	     5			                         20
3		2		   03.09.2021 03.09.2021	     6			                         30
2		3		   08.09.2021 03.09.2021	    10	                                         30
3		3		   11.09.2021 08.09.2021            10                                           30

...
Рейтинг: 0 / 0
Помочь с запросом
    #40101088
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest1985,
может так:
...
Рейтинг: 0 / 0
Помочь с запросом
    #40101122
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПыСы:если кодовое поле случайные значения(не счетчик)сортировать по полю Visits_date, а не ID
...
Рейтинг: 0 / 0
Помочь с запросом
    #40101172
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest1985
aleks222,

к сожалению запрос не выводит предыдущую дату, выводит такую же дату в другой столбец.
Нужна именно дата предыдущая например:


Вот они - истинные кнопкодавы.
- Мозг включить?
- Не, не знаем, что это такое.

Код: sql
1.
2.
SELECT e.Shop_code,e.Visits_date, (select Max(Visits_date) from Visits where Visits_date<e.Visits_date) as LVisits_date
FROM  Visits e
...
Рейтинг: 0 / 0
Помочь с запросом
    #40101188
Dadont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest1985
Коллеги, добрый день!
Прошу помочь с запросом( прилагаю схему данных):
Есть запрос, который выводит предыдущую дату визита сотрудника в магазин в отдельном столбце рядом со столбцом даты визита
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
 
SELECT e.Shop_code,e.Visits_date,e2.LVisits_date
FROM  Visits e
left join (select Shop_code,Max(e.Visits_date) LVisits_date
from Visits
where Visits_date<=e.Visits_date
Group by Shop_code) e2
on e.Shop_code = e2.Shop_code



Запрос в MS Access выводит ошибку: Ошибка синтаксиса(пропущен оператор) в выражении запроса Max(e.Visits_date) LVisits_date

2)В строке
Код: vbnet
1.
 where Visits_date<=e.Visits_date

-
ошибка, не знаю как правильно написать условие для вывода предыдущей даты.


Вы хотите запрос по сотрудникам, а в условии Shop_code?
...
Рейтинг: 0 / 0
Помочь с запросом
    #40101191
Dadont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest1985, и Ваш запрос выдает последнюю дату посещения а не предыдущую
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT e.Employee_code,e.Visits_date,e2.LVisits_date
FROM  Visits e
left join (select Employee_code,Max(e.Visits_date) LVisits_date
from Visits e
where Visits_date<=e.Visits_date
Group by Employee_code) e2
on e.Employee_code = e2.Employee_code 
...
Рейтинг: 0 / 0
Помочь с запросом
    #40101220
Dadont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужна дата предыдущего посещения, то вот
Код: sql
1.
2.
SELECT e.Employee_code, e.Visits_date, e2.Visits_date PVisits_date
FROM  Visits AS e LEFT JOIN Visits AS e2 ON e.Employee_code = e2.Employee_code AND e2.Visits_date<e.Visits_date
...
Рейтинг: 0 / 0
Помочь с запросом
    #40101728
Dadont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так
Код: sql
1.
2.
3.
4.
5.
6.
SELECT
Employee_code,
Visits_date,
LAG(Visits_date) OVER (PARTITION BY Employee_code) PVisits_date
FROM
Visits;
...
Рейтинг: 0 / 0
Помочь с запросом
    #40101753
Dadont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, в Аксесе нет оконных функций
тогда как-то так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT Employee_code,
		Visits_date,
      (SELECT Top 1 e.Visits_date 
       FROM Visits e 
       WHERE e.Visits_date<Visits.Visits_date
       AND e.Employee_code=Visits.Employee_code 
       ORDER BY e.Visits_date DESC) AS PVisits_date
FROM Visits
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помочь с запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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