powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Условия в запрсое
11 сообщений из 11, страница 1 из 1
Условия в запрсое
    #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
Условия в запрсое
    #39499554
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denzl.ast,

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

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

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

Код: sql
1.
2.
MIN(IIF(pobj_n=45, l.dt, null)),
MAX(IIF(pobj_n=47, l.dt, null))
...
Рейтинг: 0 / 0
Условия в запрсое
    #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
Условия в запрсое
    #39499584
denzl.ast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис - спасибо тебе тёска, ты лучший!)

всем спасибо за участие.
тему можно закрывать.
...
Рейтинг: 0 / 0
Условия в запрсое
    #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
Условия в запрсое
    #39499641
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

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


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