|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
Привет всем пожалуйста помогите с запросом, есть 2 таблицы, сотрудники с колонками(id,фио) и проходы турникета(дата, время, фио, тип события(вход,выход)), нужно выбрать все записи за определенный промежуток времени где количество входов не равно количеству выходов ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 20:16 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 20:22 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
__Michelle, это два варианта в скобочках, которые могут быть, а колонка тип события называется ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 20:25 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
__Michelle, или так имеешь ввиду? 'SELECT Дата_Прохода_Турникета,Дата_Прохода_Турникета,Sotrudniki.Фио FROM Turniket INNER JOIN Sotrudniki ON Sotrudniki.ID = Turniket.ID' 'GROUP BY Дата_Прохода_Турникета,Дата_Прохода_Турникета,Sotrudniki.ФИО,Тип_События HAVING COUNT(Тип_События = "Вход") <> COUNT(Тип_События = "Выход")' ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 20:30 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
Gerrychka, нет, скорее так Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 20:59 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
__Michelle, Спасибо большое надеюсь сработает) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 21:32 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
Gerrychka, получается не работает написал с полями которые мне нужны SELECT Дата_Прохода_Турникета,Время_Прохода_Турникета,Sotrudniki.Фио, Тип_Прохода FROM Turniket INNER JOIN Sotrudniki ON Sotrudniki.ID = Turniket.ID WHERE (Дата_Прохода_Турникета>=:FromDate) AND (Дата_Прохода_Турникета<=:ToDate) GROUP BY Sotrudniki.ФИО,Дата_Прохода_Турникета,Время_Прохода_Турникета,Тип_Прохода HAVING SUM(Тип_Прохода = "Вход") <> SUM(Тип_Прохода = "Выход") как же правильно ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 21:51 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
__Michelle, получается не работает написал с полями которые мне нужны SELECT Дата_Прохода_Турникета,Время_Прохода_Турникета,Sotrudniki.Фио, Тип_Прохода FROM Turniket INNER JOIN Sotrudniki ON Sotrudniki.ID = Turniket.ID WHERE (Дата_Прохода_Турникета>=:FromDate) AND (Дата_Прохода_Турникета<=:ToDate) GROUP BY Sotrudniki.ФИО,Дата_Прохода_Турникета,Время_Прохода_Турникета,Тип_Прохода HAVING SUM(Тип_Прохода = "Вход") <> SUM(Тип_Прохода = "Выход") как же правильно ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 21:51 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
Gerrychka, А что значит "не работает", в чем это выражается? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 21:56 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
__Michelle, просто отбирает все записи, условие распространяется только на дату ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 21:59 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
Gerrychka__Michelle, просто отбирает все записи, условие распространяется только на датуВы про мой запрос? Там отбираются сотрудники, по которым есть несоответствие входов-выходов за период. А нужно вывести записи из таблицы Турникет? Сделайте мой запрос сохраненным запросом (ZZ). В новом запросе свяжите ZZ по Id с табл. Турникет, так же, как в ZZ, задайте в нужный период - и выведите требующиеся поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 22:17 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
__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 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 22:47 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 02:21 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
__Michelle,а как вы вот так бардовым выделяет нужное? Научите пожалуйста,а то я в данном вопросе немного туповат, но уж тоже шибко хотся.. В куда жмете? Пальцем можете показать или носом ткнуть? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 09:05 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
Лапух, смотрите ФАК по форуму: http://www.sql.ru/faq/faq_topic.aspx?fid=202 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 09:41 |
|
Выборка для системы контроля доступа
|
|||
---|---|---|---|
#18+
mds_world, Ага, спасибо, Но чей та похоже у меня браузер очень древний и принципиально не обновленный, соответственно не можу ощутить всех радостей жизни.ну да ладно, не сильно запариваюсь, и так сойдет, на скорость работы БД не сильно надеюсь повлияет мой консерватизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 10:00 |
|
|
start [/forum/topic.php?fid=45&msg=39374575&tid=1612850]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
3ms |
others: | 359ms |
total: | 502ms |
0 / 0 |