powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / помогите написать запрос
20 сообщений из 20, страница 1 из 1
помогите написать запрос
    #38402632
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dtmovename20.09.2013 11:16:13.000входимя121.09.2013 11:02:21.000входимя120.09.2013 16:53:48.000выходимя120.09.2013 16:30:16.000выходимя1

как мне написать запрос чтоб получить
min_dtmax_dtname20.09.2013 11:16:13.00020.09.2013 16:53:48.000имя121.09.2013 11:02:21.00020.09.2013 16:30:16.000имя1

фактически в первое поле минимум даты вывести и соответственно во второе максимум...у меня не получается сделать это в 2 строки :(
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402639
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvelу меня не получается сделать это в 2 строки :(
Показывай, как пробовал.
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402640
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvel,

Чего то не очень смысл ясен. Вот если бы name хоть где-то отличалось. тогда ещё понятно что нужно. А так не ясно.
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402649
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanmarvelу меня не получается сделать это в 2 строки :(
Показывай, как пробовал.

Код: sql
1.
select case when move= 'вход' then dt end,case when move= 'выход' then dt end,namefrom @t
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402656
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvel,

marvel@t это ещё что такое? Ты сервером не ошибся?
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402657
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvel, про min и max слышал?
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402671
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanmarvel, про min и max слышал?
Код: sql
1.
select case when move= 'вход' then min(dt) end v1,case when move= 'выход' then max(dt) end v2 from table group by move, cast(dt as datetime)



так тоже не тот результат...
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402677
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvelтак тоже не тот результат...
А "тот" результат получить просто невозможно: для этого в таблице не хватает данных.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402682
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvel,

Код: sql
1.
select min(case when move= 'вход' then dt end) v1, max(case when move= 'выход' then dt end) v2 ...



А вот так?
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402691
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

что должно еще быть?? эта таблица результат запроса, поэтому я могу ее изменить
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402693
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvelчто должно еще быть??
Нечто, что могло бы связать записи "вход" с записями "выход".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402696
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvel,

ты лучше объясни чего ты хочешь. А то написал минимальную и максимальную дату. Дату чего? По поводу одинакового имени name я тебе уже говорил. Если дату входа и выхода пользователя из системы, то входные данные представлены не совсем верно. Или у тебя один юзер два раза входит, а потом два раза выходит. Если так, то действительно не хватает данных.
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402715
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисmarvel,

ты лучше объясни чего ты хочешь. А то написал минимальную и максимальную дату. Дату чего? По поводу одинакового имени name я тебе уже говорил. Если дату входа и выхода пользователя из системы, то входные данные представлены не совсем верно. Или у тебя один юзер два раза входит, а потом два раза выходит. Если так, то действительно не хватает данных.


юзер только раз входит и раз выходит из системы в день, надо отобразить руководству отчет в виде ФИО, мин дата время и макс дата время, для каждого из дней.
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402718
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvelСимонов Денисmarvel,

ты лучше объясни чего ты хочешь. А то написал минимальную и максимальную дату. Дату чего? По поводу одинакового имени name я тебе уже говорил. Если дату входа и выхода пользователя из системы, то входные данные представлены не совсем верно. Или у тебя один юзер два раза входит, а потом два раза выходит. Если так, то действительно не хватает данных.


юзер только раз входит и раз выходит из системы в день, надо отобразить руководству отчет в виде ФИО, мин дата время и макс дата время, для каждого из дней.

соответственно пользователей может быть много, это я представил только одного!
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402720
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя в исходной таблице не так.

Да и в результате написано мол минимальная дата больше максимальной. Подправь исходные данные.
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402728
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvelдля каждого из дней.
Вот, это уже лучше. Используй
Код: sql
1.
group by user, cast(dt as date)


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402730
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисУ тебя в исходной таблице не так.

Да и в результате написано мол минимальная дата больше максимальной. Подправь исходные данные.

[quot marvel]dtmovename20.09.2013 11:16:13.000входимя121.09.2013 11:02:21.000входимя120.09.2013 16:53:48.000выходимя121.09.2013 16:30:16.000выходимя120.09.2013 10:16:13.000входимя220.09.2013 18:53:48.000выходимя2

как мне написать запрос чтоб получить
min_dtmax_dtname20.09.2013 11:16:13.00020.09.2013 16:53:48.000имя120.09.2013 10:16:13.00020.09.2013 18:53:48.000имя221.09.2013 11:02:21.00021.09.2013 16:30:16.000имя1
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402737
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvel,

как DS сказал

Код: sql
1.
2.
3.
4.
5.
select min(case when move= 'вход' then dt end) v1, 
         min(case when move= 'выход' then dt end) v2
         name
from mytable
group by name, cast(dt as date)



Только тут надо подумать о том что будет если коннект завершен не штатно. Я бы в табличку ещё добавил номер коннекта, чтобы отслеживать данные ситуации.
...
Рейтинг: 0 / 0
помогите написать запрос
    #38402769
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

спасибо.
...
Рейтинг: 0 / 0
помогите написать запрос
    #38403046
barrac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще было бы красиво добавить поле Дата, в котором от даты отрезать время, и в полях вход выход отрезать дату(делал такое на ms sql) и самое прикольное в:

Код: sql
1.
2.
min(case when move= 'вход' then dt end) v1, 
         min(case when move= 'выход' then dt end) v2



при min(выход) у вас под дверью будет огромная очередь работников которые вам будут рассказывать, что вчера вечером у них не сработал турникет поэтому v2=null а сегодня утром у них вначале выход а потом вход, т.е. запрос с минимальными входом и выходом даст результат вход='9:00:00' выход='8:59:59' (обычно нормальные турникеты не позволяют войти, если ты еще не вышел, а ой я забыла карточку в другой сумочке, даже в самых строгих организациях бывает.), а также все кто выходил из здания на обед, судя по полю выход закончили работать в 12:00 ??
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / помогите написать запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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