Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите написать фильтр / 9 сообщений из 9, страница 1 из 1
10.06.2019, 00:37
    #39824707
Mr.Brown
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать фильтр
Ребята помоги фильтр, нужен отчет по позициям.
Отчет работает через процедуру, где входной параметр тип отчета и дата.
Отчет 1: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний трех дней совместно с позициями которые открыты сегодня.
Отчет 2: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний десяти дней.
...
Рейтинг: 0 / 0
10.06.2019, 00:38
    #39824708
Mr.Brown
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать фильтр
Mr.BrownРебята помогите фильтр, нужен отчет по позициям.
Отчет работает через процедуру, где входной параметр тип отчета и дата.
Отчет 1: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний трех дней совместно с позициями которые открыты сегодня.
Отчет 2: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний десяти дней.
...
Рейтинг: 0 / 0
10.06.2019, 07:46
    #39824744
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать фильтр
Mr.BrownРебята помогиРыжый, ты промазал с форумом и недоприготовил >100k ен.
...
Рейтинг: 0 / 0
10.06.2019, 08:49
    #39824764
Mr.Brown
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать фильтр
ElicMr.BrownРебята помогиРыжый, ты промазал с форумом и недоприготовил >100k ен.

Опечатка, когда пишешь пост в 3 часа ночи) исправил потом
...
Рейтинг: 0 / 0
10.06.2019, 08:54
    #39824765
Dshedoo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать фильтр
Mr.BrownОтчет 1: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний трех дней совместно с позициями которые открыты сегодня.

Код: plsql
1.
2.
Select * from table t
where "Дата открытия" >= сегодня или "Дата закрытия" >= сегодня минус три дня



Mr.BrownОтчет 2: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний десяти дней.


Код: plsql
1.
2.
Select * from table t
where "Дата закрытия" >= сегодня минус десять дней
...
Рейтинг: 0 / 0
10.06.2019, 11:02
    #39824838
Mr.Brown
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать фильтр
DshedooMr.BrownОтчет 1: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний трех дней совместно с позициями которые открыты сегодня.

Код: plsql
1.
2.
Select * from table t
where "Дата открытия" >= сегодня или "Дата закрытия" >= сегодня минус три дня



Mr.BrownОтчет 2: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний десяти дней.


Код: plsql
1.
2.
Select * from table t
where "Дата закрытия" >= сегодня минус десять дней



спасибо но как использовать в одном селекте?
...
Рейтинг: 0 / 0
10.06.2019, 11:11
    #39824841
Dshedoo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать фильтр
Mr.BrownDshedooпропущено...

Код: plsql
1.
2.
Select * from table t
where "Дата открытия" >= сегодня или "Дата закрытия" >= сегодня минус три дня



пропущено...


Код: plsql
1.
2.
Select * from table t
where "Дата закрытия" >= сегодня минус десять дней



спасибо но как использовать в одном селекте?

Очевидно же:
Код: plsql
1.
2.
Select * from table t
where "Дата открытия" >= сегодня или "Дата закрытия" >= сегодня минус три дня или "Дата закрытия" >= сегодня минус десять дней


Но есть вероятность, что какое-то одно условие перекрывает другое.
...
Рейтинг: 0 / 0
10.06.2019, 11:20
    #39824852
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать фильтр
Mr.BrownРебята помоги фильтр, нужен отчет по позициям.
Отчет работает через процедуру, где входной параметр тип отчета и дата .
Отчет 1: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний трех дней совместно с позициями которые открыты сегодня.
Отчет 2: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний десяти дней.


роль даты в етой задаче?

....
stax
...
Рейтинг: 0 / 0
10.06.2019, 12:24
    #39824896
maverick2104
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать фильтр
Stax
роль даты в етой задаче?



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

Попытка угадать
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
declare
 
 тип_отчета number; -- 1 или 2
 дата_отчета date ;

begin 
 --тип_отчета  := '2';
 --дата_отчета := to_date('10.06.2019','dd.mm.yyyy');

if тип_отчета= '1' then 
for c in ( with t as ( 
            select  '1' as Позиция , to_date('28.04.2019','dd.mm.yyyy') as Дата_открытия , null as Дата_закрытия from dual
           union all
            select  '2' as Позиция , to_date('16.01.2019','dd.mm.yyyy') as Дата_открытия , to_date('29.04.2019','dd.mm.yyyy') as Дата_закрытия from dual
           union all
            select  '3' as Позиция , to_date('07.10.2018','dd.mm.yyyy') as Дата_открытия , to_date('04.06.2019','dd.mm.yyyy') as Дата_закрытия from dual
           union all
            select  '4' as Позиция , to_date('06.05.2019','dd.mm.yyyy') as Дата_открытия , null as Дата_закрытия from dual
           union all
            select  '5' as Позиция , to_date('08.04.2018','dd.mm.yyyy') as Дата_открытия , to_date('06.06.2019','dd.mm.yyyy') as Дата_закрытия from dual
           union all
            select  '6' as Позиция , to_date('10.06.2019','dd.mm.yyyy') as Дата_открытия , to_date('08.06.2019','dd.mm.yyyy') as Дата_закрытия from dual)
            select позиция  from t where  дата_открытия=дата_отчета and дата_закрытия>=дата_отчета-3 ) 
             loop 
              begin  
              dbms_output.put_line(c.позиция);
              end; end loop;
  end if ;
if тип_отчета= '2' then 
           for c in ( with t as ( 
            select  '1' as Позиция , to_date('28.04.2019','dd.mm.yyyy') as Дата_открытия , null as Дата_закрытия from dual
           union all
            select  '2' as Позиция , to_date('16.01.2019','dd.mm.yyyy') as Дата_открытия , to_date('29.04.2019','dd.mm.yyyy') as Дата_закрытия from dual
           union all
            select  '3' as Позиция , to_date('07.10.2018','dd.mm.yyyy') as Дата_открытия , to_date('04.06.2019','dd.mm.yyyy') as Дата_закрытия from dual
           union all
            select  '4' as Позиция , to_date('06.05.2019','dd.mm.yyyy') as Дата_открытия , null as Дата_закрытия from dual
           union all
            select  '5' as Позиция , to_date('08.04.2018','dd.mm.yyyy') as Дата_открытия , to_date('06.06.2019','dd.mm.yyyy') as Дата_закрытия from dual
           union all
            select  '6' as Позиция , to_date('10.06.2019','dd.mm.yyyy') as Дата_открытия , to_date('08.06.2019','dd.mm.yyyy') as Дата_закрытия from dual)
            select позиция  from t where  дата_закрытия>=дата_отчета-10 ) 
             loop 
              begin  
              dbms_output.put_line(c.позиция);
              end; end loop;
  end if ;
  end;



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


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