Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выборка для системы контроля доступа / 16 сообщений из 16, страница 1 из 1
24.12.2016, 20:16
    #39374506
Gerrychka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
Привет всем пожалуйста помогите с запросом, есть 2 таблицы, сотрудники с колонками(id,фио) и проходы турникета(дата, время, фио, тип события(вход,выход)), нужно выбрать все записи за определенный промежуток времени где количество входов не равно количеству выходов
...
Рейтинг: 0 / 0
24.12.2016, 20:22
    #39374511
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
Код: sql
1.
....GROUP BY Сотр HAVING Sum(вход)<>Sum(выход)
...
Рейтинг: 0 / 0
24.12.2016, 20:25
    #39374516
Gerrychka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
__Michelle,
это два варианта в скобочках, которые могут быть, а колонка тип события называется
...
Рейтинг: 0 / 0
24.12.2016, 20:30
    #39374522
Gerrychka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
__Michelle,
или так имеешь ввиду?
'SELECT Дата_Прохода_Турникета,Дата_Прохода_Турникета,Sotrudniki.Фио FROM Turniket INNER JOIN Sotrudniki ON Sotrudniki.ID = Turniket.ID'
'GROUP BY Дата_Прохода_Турникета,Дата_Прохода_Турникета,Sotrudniki.ФИО,Тип_События HAVING COUNT(Тип_События = "Вход") <> COUNT(Тип_События = "Выход")'
...
Рейтинг: 0 / 0
24.12.2016, 20:59
    #39374545
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
Gerrychka,

нет, скорее так
Код: sql
1.
2.
3.
4.
5.
SELECT Sotrudniki.ID, Sotrudniki.Фио 
FROM Sotrudniki INNER JOIN Turniket ON Sotrudniki.ID = Turniket.ID
WHERE <тут условие отбора записей заданного периода>
GROUP BY Sotrudniki.ID, Sotrudniki.ФИО 
HAVING Sum(Тип_События = "Вход") <> Sum(Тип_События = "Выход")
...
Рейтинг: 0 / 0
24.12.2016, 21:32
    #39374554
Gerrychka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
__Michelle,
Спасибо большое надеюсь сработает)
...
Рейтинг: 0 / 0
24.12.2016, 21:51
    #39374562
Gerrychka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
Gerrychka,
получается не работает
написал с полями которые мне нужны
SELECT Дата_Прохода_Турникета,Время_Прохода_Турникета,Sotrudniki.Фио, Тип_Прохода
FROM Turniket INNER JOIN Sotrudniki ON Sotrudniki.ID = Turniket.ID
WHERE (Дата_Прохода_Турникета>=:FromDate) AND (Дата_Прохода_Турникета<=:ToDate)
GROUP BY Sotrudniki.ФИО,Дата_Прохода_Турникета,Время_Прохода_Турникета,Тип_Прохода
HAVING SUM(Тип_Прохода = "Вход") <> SUM(Тип_Прохода = "Выход")
как же правильно
...
Рейтинг: 0 / 0
24.12.2016, 21:51
    #39374563
Gerrychka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
__Michelle,
получается не работает
написал с полями которые мне нужны
SELECT Дата_Прохода_Турникета,Время_Прохода_Турникета,Sotrudniki.Фио, Тип_Прохода
FROM Turniket INNER JOIN Sotrudniki ON Sotrudniki.ID = Turniket.ID
WHERE (Дата_Прохода_Турникета>=:FromDate) AND (Дата_Прохода_Турникета<=:ToDate)
GROUP BY Sotrudniki.ФИО,Дата_Прохода_Турникета,Время_Прохода_Турникета,Тип_Прохода
HAVING SUM(Тип_Прохода = "Вход") <> SUM(Тип_Прохода = "Выход")
как же правильно
...
Рейтинг: 0 / 0
24.12.2016, 21:56
    #39374565
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
Gerrychka,

А что значит "не работает", в чем это выражается?
...
Рейтинг: 0 / 0
24.12.2016, 21:59
    #39374566
Gerrychka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
__Michelle,
просто отбирает все записи, условие распространяется только на дату
...
Рейтинг: 0 / 0
24.12.2016, 22:17
    #39374572
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
Gerrychka__Michelle,
просто отбирает все записи, условие распространяется только на датуВы про мой запрос?
Там отбираются сотрудники, по которым есть несоответствие входов-выходов за период.
А нужно вывести записи из таблицы Турникет?
Сделайте мой запрос сохраненным запросом (ZZ).
В новом запросе свяжите ZZ по Id с табл. Турникет,
так же, как в ZZ, задайте в нужный период - и выведите требующиеся поля.
...
Рейтинг: 0 / 0
24.12.2016, 22:47
    #39374575
Gerrychka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
__Michelle,
как то типо такого?
SELECT Дата_Прохода_Турникета,Время_Прохода_Турникета,Sotrudniki.ФИО, Тип_Прохода
FROM Turniket INNER JOIN Sotrudniki ON Sotrudniki.ID = Turniket.ID
WHERE ((Дата_Прохода_Турникета>=:FromDate) AND (Дата_Прохода_Турникета<=:ToDate)) AND ((Время_Прохода_Турникета>=:FromTime) AND (Время_Прохода_Турникета<=:ToTime)) AND ZZ.ID = Sotrudniki.ID
(SELECT Sotrudniki.ID, Sotrudniki.ФИО
FROM Sotrudniki INNER JOIN Turniket ON Sotrudniki.ID = Turniket.ID
WHERE ((Дата_Прохода_Турникета>=:FromDate) AND (Дата_Прохода_Турникета<=:ToDate)) AND ((Время_Прохода_Турникета>=:FromTime) AND (Время_Прохода_Турникета<=:ToTime))
GROUP BY Sotrudniki.ID, Sotrudniki.ФИО
HAVING SUM(Тип_Прохода = "Вход") <> SUM(Тип_Проходаÿ = "Выход")) as ZZ
...
Рейтинг: 0 / 0
25.12.2016, 02:21
    #39374630
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT Sotrudniki.ID, Sotrudniki.ФИО, Turniket.*
FROM Turniket INNER JOIN
(SELECT Sotrudniki.ID, Sotrudniki.Фио 
FROM Sotrudniki INNER JOIN Turniket ON Sotrudniki.ID = Turniket.ID
WHERE <тут условие отбора записей заданного периода>
GROUP BY Sotrudniki.ID, Sotrudniki.ФИО 
HAVING Sum(Тип_События = "Вход") <> Sum(Тип_События = "Выход")) AS Z
ON Turniket.ID = Z.ID
WHERE <тут опять условие отбора записей заданного периода>
...
Рейтинг: 0 / 0
25.12.2016, 09:05
    #39374652
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
__Michelle,а как вы вот так бардовым выделяет нужное?
Научите пожалуйста,а то я в данном вопросе немного туповат, но уж тоже шибко хотся..
В куда жмете?
Пальцем можете показать или носом ткнуть?
...
Рейтинг: 0 / 0
25.12.2016, 09:41
    #39374663
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
Лапух, смотрите ФАК по форуму: http://www.sql.ru/faq/faq_topic.aspx?fid=202
...
Рейтинг: 0 / 0
25.12.2016, 10:00
    #39374667
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка для системы контроля доступа
mds_world,

Ага, спасибо, Но чей та похоже у меня браузер очень древний и принципиально не обновленный, соответственно не можу ощутить всех радостей жизни.ну да ладно, не сильно запариваюсь, и так сойдет, на скорость работы БД не сильно надеюсь повлияет мой консерватизм.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выборка для системы контроля доступа / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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