powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Всем привет, делаю задание нужна подсказка!!!
8 сообщений из 8, страница 1 из 1
Всем привет, делаю задание нужна подсказка!!!
    #39918781
Rose231995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select s.name_s, count(j.type_j)
from Subj s
left join Journal j on j.subj_id=s.id_s
where to_char(j.dtime,'hh24:mi')>to_char('09:12') and to_char(j.dtime,'mm')=to_char(sysdate,'mm') and to_char(j.dtime,'day')!='воскресенье' and to_char(j.dtime,'day')!='суббота' and j.type_j=0
group by s.name_s
order by s.name_s,count(j.type_j) desc
--------------------------------------------------------------------------------------------------
как мне сделать первый вход за день?
Всем заранее спасибо, кто откликнется!!!
...
Рейтинг: 0 / 0
Всем привет, делаю задание нужна подсказка!!!
    #39918784
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работайте с датой как с датой.

"Первый вход" - это первая запись за день?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
with t (n, d) as
( select 'name1', to_date('2020-01-01 10:00', 'yyyy-mm-dd hh24:mi') from dual union all
  select 'name1', to_date('2020-01-01 12:00', 'yyyy-mm-dd hh24:mi') from dual union all
  select 'name1', to_date('2020-01-02 11:00', 'yyyy-mm-dd hh24:mi') from dual union all
  select 'name2', to_date('2020-01-10 09:00', 'yyyy-mm-dd hh24:mi') from dual union all
  select 'name2', to_date('2020-01-10 11:00', 'yyyy-mm-dd hh24:mi') from dual
)
select n, trunc(d), min(d)  from t group by n, trunc(d)
...
Рейтинг: 0 / 0
Всем привет, делаю задание нужна подсказка!!!
    #39918785
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rose231995
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select s.name_s, count(j.type_j)
from Subj s
left join Journal j on j.subj_id=s.id_s
 where to_char(j.dtime,'hh24:mi')>to_char('09:12')
   and to_char(j.dtime,'mm')=to_char(sysdate,'mm')
   and to_char(j.dtime,'day')!='воскресенье'
   and to_char(j.dtime,'day')!='суббота'
   and j.type_j=0
 group by s.name_s
 order by s.name_s,count(j.type_j) desc

людей уважай, код форматируй
...
Рейтинг: 0 / 0
Всем привет, делаю задание нужна подсказка!!!
    #39918786
Rose231995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm,

да, я прикрепил задание,там можно прочитать задание
...
Рейтинг: 0 / 0
Всем привет, делаю задание нужна подсказка!!!
    #39918787
Rose231995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извеняюсь,прикрепил не то((
...
Рейтинг: 0 / 0
Всем привет, делаю задание нужна подсказка!!!
    #39918835
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первое что "поразило" это to_char(j.dtime,'hh24:mi')> to_char('09:12') . Ну и where to_char(j.dtime,'hh24:mi')>to_char('09:12') который убивает left join. Дальше: предположим я пришел вовремя а в обед выбежал за шaурмой - твой код меня тут-же запишет в "опоздальщики". Да и count(j.type_j) посчитает все входы после 9:12 за месяц а не все опоздания за месяц.

Я буду считать что выводить надо только "опоздальщиков" за текущий месяц и первыми выводим "злостных опоздальщиков"

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with j as (
           select  subj_id
             from  journal
             where type = 0 -- вход
               and dtime >= trunc(sysdate,'mm') -- текущий месяц
               and dtime - trunc(dtime,'iw') >= 5 -- будний день
             group by subj_id,     -- группируем входы по сосрудникам
                      trunc(dtime) -- за день
             having to_char(min(dtime),'hh24:mi') > '09:12' -- нас итересуют дни когда первый вход сосрудникa после 9:12
          )
select  s.name,
        count(*)
  from  subj s,
        j
  where j.subj_id = s.id
 group by s.name
 order by count(*) desc,
          s.name
/



SY.
...
Рейтинг: 0 / 0
Всем привет, делаю задание нужна подсказка!!!
    #39918962
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY

and dtime - trunc(dtime,'iw') >= 5 -- будний день


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> ed
Wrote file afiedt.buf

  1* select sysdate, sysdate - trunc(sysdate,'iw') i from dual
SQL> /

SYSDATE           I
-------- ----------
27.01.20 ,375821759



.....
stax
...
Рейтинг: 0 / 0
Всем привет, делаю задание нужна подсказка!!!
    #39919039
Rose231995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за помощь!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Всем привет, делаю задание нужна подсказка!!!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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