powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите написать фильтр
9 сообщений из 9, страница 1 из 1
Помогите написать фильтр
    #39824707
Mr.Brown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята помоги фильтр, нужен отчет по позициям.
Отчет работает через процедуру, где входной параметр тип отчета и дата.
Отчет 1: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний трех дней совместно с позициями которые открыты сегодня.
Отчет 2: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний десяти дней.
...
Рейтинг: 0 / 0
Помогите написать фильтр
    #39824708
Mr.Brown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr.BrownРебята помогите фильтр, нужен отчет по позициям.
Отчет работает через процедуру, где входной параметр тип отчета и дата.
Отчет 1: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний трех дней совместно с позициями которые открыты сегодня.
Отчет 2: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний десяти дней.
...
Рейтинг: 0 / 0
Помогите написать фильтр
    #39824744
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.BrownРебята помогиРыжый, ты промазал с форумом и недоприготовил >100k ен.
...
Рейтинг: 0 / 0
Помогите написать фильтр
    #39824764
Mr.Brown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicMr.BrownРебята помогиРыжый, ты промазал с форумом и недоприготовил >100k ен.

Опечатка, когда пишешь пост в 3 часа ночи) исправил потом
...
Рейтинг: 0 / 0
Помогите написать фильтр
    #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
Помогите написать фильтр
    #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
Помогите написать фильтр
    #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
Помогите написать фильтр
    #39824852
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.BrownРебята помоги фильтр, нужен отчет по позициям.
Отчет работает через процедуру, где входной параметр тип отчета и дата .
Отчет 1: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний трех дней совместно с позициями которые открыты сегодня.
Отчет 2: необходимо отобразить позиции которые были открыты в любой время и закрыты в течении последний десяти дней.


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

....
stax
...
Рейтинг: 0 / 0
Помогите написать фильтр
    #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
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите написать фильтр
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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