Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Условия в запрсое / 11 сообщений из 11, страница 1 из 1
03.08.2017, 11:00
    #39499535
denzl.ast
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия в запрсое
Всем кто зашел в эту тему - доброго времени суток! Имею следующий вопрос:
имеется запрос вида (BD Firebird):

Код: sql
1.
2.
3.
4.
5.
6.
select c.f_name,c.s_name,c.job,min(l.dt),max(l.dt)
  from LOGTAB l
       join clitab c on c.num_kd=l.num_kd
  where l.pobj_n in (45,47) and cast(l.dt as date)='$op'
  group by l.num_kd,c.f_name,c.depar,c.job,c.s_name
  order by c.f_name



Столбец dt (timestamp) записывает время с турникета (вход и выход), события входа и выхода распознаются как pobj_n=45 или 47 (в зависимости от входа или выхода). Запрос отрабатывает, логика тоже срабатывает верно - выдает самое раннее время и самое позднее (по столбцу dt).

а вопрос в следующем: как можно реализовать чтобы min(l.dt) бралось из списка при условии что pobj_n=45, а max(l.dt) из списка pobj_n=47. ( разделить время по событиям)

Перепробовал и case и iif - не помогло. Может подскажите куда копать?
...
Рейтинг: 0 / 0
03.08.2017, 11:16
    #39499554
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия в запрсое
denzl.ast,

А какая версия FB? Если типа 2.0 (что часто ещё есть в СКУД), то новые возможности FB не предлагать?
...
Рейтинг: 0 / 0
03.08.2017, 11:19
    #39499557
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия в запрсое
denzl.astПерепробовал и case и iif - не помоглоКак пробовал ?
...
Рейтинг: 0 / 0
03.08.2017, 11:39
    #39499574
denzl.ast
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия в запрсое
KreatorXXI - версия 2.5, стоит скуд от КОДОС. Предлагай все, что SQL захавает)

hvlad - IIF(max(l.dt)=min(l.dt),'Не выходил-а',max(l.dt)) - был такой вариант, но он исключает одинаковое время в столбцах ( если время входа есть, а времени выхода нет, то значения одинаковые - чего быть не должно)
с CASE дельного ничего не вышло, с CASE запрос не разу не заработал - хотя все по мануалам.
...
Рейтинг: 0 / 0
03.08.2017, 11:43
    #39499578
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия в запрсое
denzl.ast,

ну вот словесно описываешь одно, а пробуешь другое

Код: sql
1.
2.
MIN(IIF(pobj_n=45, l.dt, null)),
MAX(IIF(pobj_n=47, l.dt, null))
...
Рейтинг: 0 / 0
03.08.2017, 11:43
    #39499579
denzl.ast
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия в запрсое
По идеи нужно всего лишь объеденить

select c.f_name,c.s_name,c.job,min(l.dt)
from LOGTAB l
join clitab c on c.num_kd=l.num_kd
where l.pobj_n='45' and cast(l.dt as date)='$op' and c.depar like '%Салон%'
group by l.num_kd,c.f_name,c.depar,c.job,c.s_name
order by c.f_name;

+

select min(l.dt)...
where l.pobj_n='47'

объединение через UNION тож не подошло

или может мои лыжи просто не едут =(
...
Рейтинг: 0 / 0
03.08.2017, 11:47
    #39499584
denzl.ast
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия в запрсое
Симонов Денис - спасибо тебе тёска, ты лучший!)

всем спасибо за участие.
тему можно закрывать.
...
Рейтинг: 0 / 0
03.08.2017, 11:50
    #39499586
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия в запрсое
Симонов Денис
Код: sql
1.
IIF(pobj_n=45, l.dt, null)

Всегда предпочитаю стандартный CASE:
Код: sql
1.
CASE WHEN pobj_n = 45 THEN l.dt END
...
Рейтинг: 0 / 0
03.08.2017, 13:22
    #39499641
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия в запрсое
hvlad,

Плюсую. Тоже IIF не люблю, почему-то.
...
Рейтинг: 0 / 0
03.08.2017, 13:32
    #39499645
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия в запрсое
потому что это перлоподобное бл*дство.
...
Рейтинг: 0 / 0
03.08.2017, 13:35
    #39499651
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия в запрсое
я тоже предпочитаю CASE, но какой-то неприязни к IIF у меня нет. Автор показал кусок с использованием IIF поэтому и я так написал.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Условия в запрсое / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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