powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / предыдущая дата
4 сообщений из 4, страница 1 из 1
предыдущая дата
    #39795498
1dva3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!!

Есть SQL- запрос, где я получаю данные за один месяц. (при вводе любого месяца)

Как получать данные за предыдущие месяца по умолчанию, т.е при вводе Апрель, чтоб колонки Январь, Февраль, Март были заполнены и запрашиваемый месяц(Апрель). Так как Май, Июнь и т.д еще не наступил Столбцы остаются пустыми. Как только наступает Май Заполняются первые 4месяца + Май и т.д

Сам запрос:

Код: 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.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
select filial_id,region_id, reg,count(case when sd like '12.2018'
                                                     then 1 end) dec2018,
                                                     count(case when sd like '01.2019'
                                                     then 1 end) jan2019,
                                                     count(case when sd like '02.2019'
                                                     then FTTH end) feb2019,
                                                     count(case when sd like '03.2019'
                                                     then FTTH end) mar2019,
                                                     count(case when sd like '04.2019'
                                                     then FTTH end) apr2019,
                                                     count(case when sd like '05.2019'
                                                     then FTTH end) may2019,
                                                     count(case when sd like '06.2019'
                                                     then FTTH end) jun2019,
                                                     count(case when sd like '07.2019'
                                                     then FTTH end) jul2019,
                                                     count(case when sd like '08.2019'
                                                     then FTTH end) aug2019,
                                                     count(case when sd like '09.2019'
                                                     then FTTH end) sep2019,
                                                     count(case when sd like '10.2019'
                                                     then FTTH end) oct2019,
                                                     count(case when sd like '11.2019'
                                                     then FTTH end) nov2019
                                                     from(
select  filial_id, reg,region_id, sd,FTTH from
(select cs.id filial_id,t.region_id region_id, trim(r.name) reg,  to_char(od.end_sysdate, 'mm.yyyy')sd,
 count(case
             when od.action_id in (5, 7) and
                  dg.id = decode(cs.id, 3, 24, 13, 33, 4, 37, 11, 24, -1) and
                  (lower(ct.name) like '% net %' or
                  lower(ct.name) like '%idnet %' or
                  lower(ct.name) like '%fttx%') then
              ct.name
           end)FTTH         
from db.order_device             od,
       db.abonent_group            ag,
       db.abonent                  a,
       db.region                   r,
       db.town                     t,
       db.device_group             dg,
       db.priority                 pr,
       db.report_date              rd,
       db.action                   ac,       
       db.connect_type             ct,
       db.budget                   b,
       db.sap_client               sap,
       db.crm_server               cs
 where a.budget_id = b.id
   and sap.id = b.sap_client_id
   and od.abonent_group_id = ag.id
   and ct.id = od.new_connect_type_id   
   and a.id = od.abonent_id
   and r.id = t.region_id
   and t.id = a.town_id
   and dg.id = od.device_group_id
   and ac.id = od.action_id
   and sap.note in
       ('AFL10', 'AFL20', 'AFL30', 'UD10', 'UD20', 'UD30', 'UKO10', 'UKO20',
        'UKO30', 'FRN102', 'FRN202', 'FRN302')
   and pr.id = od.priority_id
   and pr.id != 2
   and rd.id in (1,2,3,4,5,6,7,8,9,10,11,12)-- МЕСЯЦ
  
   and od.end_sysdate between rd.from_date and rd.to_date
 group by cs.id,          
          region_id,
          r.name,
          od.end_sysdate
          
 ) group by filial_id,reg,region_id,sd,ftth)
group by filial_id,region_id, reg
...
Рейтинг: 0 / 0
предыдущая дата
    #39795543
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1dva3я получаю данные за один месяц. (при вводе любого месяца)И куда именно, позвольте полюбопытствовать, Вы его вводите?

Если Вам нужна помощь в составлении запроса - как минимум следует дать DDL исходных таблиц, пример наполнения и требуемый на именно этих данных результат. Либо текстами скриптов (проверить!!!), либо (предпочтительно) в форме fiddle.
...
Рейтинг: 0 / 0
предыдущая дата
    #39795557
1dva3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

rd.id=&p_report_date_id
...
Рейтинг: 0 / 0
предыдущая дата
    #39795693
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Вашем запросе нет такого фрагмента.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / предыдущая дата
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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