Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 33
1

Составление запроса

22.09.2016, 07:09. Показов 1247. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть база в которой фиксируется время заезда, г/н и признак того что авто заехало на территорию -1 также фиксируется запись при выезде авто с территории- время , г/н и признак - 2. машины заезжают и выезжают за сутки N раз.
Как вывести г/н машин которые на территории на данные момент времени и время их заезда на территорию?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2016, 07:09
Ответы с готовыми решениями:

Составление запроса
Здравствуйте. Прошу помочь с составлением запроса В БД есть таблицы: Сотрудники (номер,...

Составление запроса в БД
Добрый вечер, помогите пожалуйста составить sql запрос в базу данных с УСЛОВИЕМ. Есть база одной...

Составление Select запроса
Здравствуйте. Подскажите как сделать так, что б для тех клиентов, у которых нет покупок выводился 0...

Составление сложного запроса
Всем доброго времени суток, помогите составить запрос, в котором будет выводится количество...

12
50 / 49 / 13
Регистрация: 23.11.2015
Сообщений: 401
22.09.2016, 07:35 2
Как поля то хоть в таблицах называются, какая архитектура БД (какие таблицы, что содержат), что бы запрос написать? И где пожалуйста?
0
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 33
22.09.2016, 07:48  [ТС] 3
есть еще некий нюанс при заезде или выезде система внесения информации в базу может записать n кол-во одинаковых записей с разным соответственно временем.

Добавлено через 10 минут
есть бд там несколько таблиц:
таблица ведения логов plogdata (поля этой таблицы - timeval тип datetime, mode - признак въезда выезда 1 или 2 и hozorgan- г/н авто)
0
50 / 49 / 13
Регистрация: 23.11.2015
Сообщений: 401
22.09.2016, 07:52 4
Добавлено через 3 минуты
Выведет все госномера машин и время их заезда на базу. (Если я правильно понял что въезд = 1 в вашей базе)
SQL
1
SELECT hozorgan, timeval FROM plogdata WHERE mode = 1;
0
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 33
22.09.2016, 08:09  [ТС] 5
приведу запрос рабочий который выбирает все г/н и время заезда за выбранные сутки. может так проясниться все)
PHP
1
2
3
4
5
6
7
8
$sql1=" SELECT
   a1.TimeVal as t_time,
   a1.hozorgan,
   a2.Name as g_nomer 
 FROM
 pLogData              as a1
 inner Join Plist      as a2 ON (a1.HozOrgan=a2.id )
  WHERE a1.mode=1 and  '$dataX1'=convert(varchar(10),TimeVal,102)"
dataX1 - дата
таблица plist содержит г/н и связь между таблицами plogdata и plist сооответственно поля hozorgan и id

Добавлено через 7 минут
Цитата Сообщение от TurboDuck Посмотреть сообщение
Добавлено через 3 минуты
Выведет все госномера машин и время их заезда на базу. (Если я правильно понял что въезд = 1 в вашей базе)
SQL
1
SELECT hozorgan, timeval FROM plogdata WHERE mode = 1;
да все верно это все кто заехал.mode = 2 все выезжающие
0
50 / 49 / 13
Регистрация: 23.11.2015
Сообщений: 401
22.09.2016, 08:31 6
Вопрос то в чем? Ответ на то, что спрашивал написал уже выше
0
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 33
22.09.2016, 08:48  [ТС] 7
Цитата Сообщение от TurboDuck Посмотреть сообщение
Добавлено через 3 минуты
Выведет все госномера машин и время их заезда на базу. (Если я правильно понял что въезд = 1 в вашей базе)
SQL
1
SELECT hozorgan, timeval FROM plogdata WHERE mode = 1;
необходимо выбрать всех заехавших и исключить из этого списка всех выехавших и останутся только те которые час на базе. как в запросе соотнести въехавших и выехавших по времени и оставить только тех которые час на территории? (есть еще некий нюанс при заезде или выезде система внесения информации в базу может записать n кол-во одинаковых записей с разным соответственно временем подряд. недоработка системы контроля управления доступом)

Добавлено через 3 минуты
Цитата Сообщение от TurboDuck Посмотреть сообщение
Вопрос то в чем? Ответ на то, что спрашивал написал уже выше
да это все кто заехал. надо же проверить в этом запросе может они уже выехали.

Добавлено через 13 минут
Цитата Сообщение от TurboDuck Посмотреть сообщение
Вопрос то в чем? Ответ на то, что спрашивал написал уже выше
приведу результаты запросов за 21 число заехавших и выехавших г/н авто.
как должен выглядеть запрос показывающий все г/н которые на данный момент времени на территории
t_time mode g_nom
----------------------- ----------- -------------------------
2016-09-21 05:59:36.000 1 В845АН02
2016-09-21 06:01:00.000 1 В361НУ02
2016-09-21 06:02:22.000 1 В316ХУ02
2016-09-21 06:03:54.000 1 С956КХ102
2016-09-21 06:05:17.000 1 С710ХЕ102
2016-09-21 16:43:53.000 1 С956КХ102
2016-09-21 16:49:40.000 1 В845АН02
2016-09-21 16:51:30.000 1 В316ХУ02
2016-09-21 18:37:18.000 1 С710ХЕ102

(9 row(s) affected)


t_time mode g_nom
----------------------- ----------- -------------------------
2016-09-21 06:37:26.000 2 В845АН02
2016-09-21 06:42:22.000 2 В361НУ02
2016-09-21 06:58:06.000 2 В316ХУ02
2016-09-21 06:58:31.000 2 В316ХУ02
2016-09-21 06:58:58.000 2 В316ХУ02
2016-09-21 06:59:37.000 2 В316ХУ02
2016-09-21 07:00:58.000 2 В316ХУ02
2016-09-21 07:07:56.000 2 С956КХ102
2016-09-21 07:12:24.000 2 С710ХЕ102
2016-09-21 17:50:35.000 2 С956КХ102
2016-09-21 18:04:30.000 2 В845АН02
2016-09-21 18:28:01.000 2 В316ХУ02
2016-09-21 18:28:18.000 2 В316ХУ02
2016-09-21 18:29:16.000 2 В316ХУ02
2016-09-21 18:29:40.000 2 В316ХУ02
2016-09-21 18:29:56.000 2 В316ХУ02
2016-09-21 18:31:02.000 2 В316ХУ02
2016-09-21 19:42:10.000 2 С710ХЕ102

(18 row(s) affected)
0
50 / 49 / 13
Регистрация: 23.11.2015
Сообщений: 401
22.09.2016, 08:55 8
Вот и открываются подводные камни Как люди должный отвечать на ваши вопросы? При помощи ясновидящей?

необходимо выбрать всех заехавших и исключить из этого списка всех выехавших и останутся только те которые час на базе.
Соотносится при помощи флага. Mode = 1 значит на базе, 2 - значит выехал.
Запрос к базе, это и выведет:
SQL
1
SELECT hozorgan, timeval FROM plogdata WHERE mode = 1;
И что, что запишет несколько раз подряд ваша система доступа? Главное, что бы она отслеживала, что выехала машина и ставила 2 в mode своевременно. Соответственно при выборке покажет только тех кто именно сейчас на базе!

Если нужно выбрать только не повторяющиеся значения используй запрос в следующем формате:
SQL
1
SELECT hozorgan, timeval FROM  plogdata GROUP BY hozorgan HAVING COUNT(*)=1
да это все кто заехал. надо же проверить в этом запросе может они уже выехали.
Те кто уже выехали, даже не были выбраны, если система флагов работает корректно и присваивает флаг последнему действию над объектом.

Добавлено через 2 минуты
Вот так
SQL
1
SELECT hozorgan, timeval FROM  plogdata WHERE mode = 1 GROUP BY hozorgan HAVING COUNT(*)=1
0
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 33
23.09.2016, 08:42  [ТС] 9
Цитата Сообщение от TurboDuck Посмотреть сообщение
Вот и открываются подводные камни Как люди должный отвечать на ваши вопросы? При помощи ясновидящей?



Соотносится при помощи флага. Mode = 1 значит на базе, 2 - значит выехал.
Запрос к базе, это и выведет:
SQL
1
SELECT hozorgan, timeval FROM plogdata WHERE mode = 1;
И что, что запишет несколько раз подряд ваша система доступа? Главное, что бы она отслеживала, что выехала машина и ставила 2 в mode своевременно. Соответственно при выборке покажет только тех кто именно сейчас на базе!

Если нужно выбрать только не повторяющиеся значения используй запрос в следующем формате:
SQL
1
SELECT hozorgan, timeval FROM  plogdata GROUP BY hozorgan HAVING COUNT(*)=1

Те кто уже выехали, даже не были выбраны, если система флагов работает корректно и присваивает флаг последнему действию над объектом.

Добавлено через 2 минуты
Вот так
SQL
1
SELECT hozorgan, timeval FROM  plogdata WHERE mode = 1 GROUP BY hozorgan HAVING COUNT(*)=1
Задача еще не решена!!! есть два запроса которые выводят въехавшие и выехавшие машины сгруппировав по максимальному времени. Как их объединить в одну выборку чтобы вывести только те въехавшие машины время заезда у которых больше чем время выезда??? (т.е. нужно применить группировку по max времени, и сравнивать г/н еще каким способом ? вложенные коррелированные и объединение )
0
50 / 49 / 13
Регистрация: 23.11.2015
Сообщений: 401
23.09.2016, 12:46 10
Reni, так решай, раз не решена!
Че ты тут начальника из себя строишь? Где спасибо? Где пожалуйста?
0
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 33
23.09.2016, 12:53  [ТС] 11
Цитата Сообщение от TurboDuck Посмотреть сообщение
Reni, так решай, раз не решена!
Че ты тут начальника из себя строишь? Где спасибо? Где пожалуйста?
что ты заладил пожалуйста спасибо.... не знаешь решение так и скажи.
0
50 / 49 / 13
Регистрация: 23.11.2015
Сообщений: 401
23.09.2016, 14:12 12
Reni, гугл в помощь
0
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 33
23.09.2016, 14:24  [ТС] 13
Цитата Сообщение от TurboDuck Посмотреть сообщение
Reni, гугл в помощь
Да спасибо google решил с его помощью задачу. использовал конструкцию left join....
0
23.09.2016, 14:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2016, 14:24
Помогаю со студенческими работами здесь

Составление запроса с датой
BEGIN DECLARE @PREM_AKK varchar(30), @DATE_SYSTEM datetime, @SERIAL_AKK_PREM int; Select...

Составление запроса с функцией DATEADD
Привет! Помогите пожалуйста довести мой запрос до ума!! есть таблица calls, в ней поля, перечисляю...

Составление запроса с избежанием ошибки "Subquery returned more than 1 value"
имеется бд ID integer Идентификатор записи DayID date ...

Составление запроса
Есть таблица Users, а в ней есть колонка Ref, куда записывается ID пользователя, который пригласил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru