powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Объединение запросов
4 сообщений из 4, страница 1 из 1
Объединение запросов
    #39958870
USR_2020
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые коллеги!
Помогите сджойнить...
НЕ так силен в sql как в php (там могу это сделать).
Вопрос, а можно ведь и в общем запросе как то это сделать?


общие поля CENTER в обоих запросах

Код: plsql
1.
2.
3.
select SUBSTR (t.kgp, 1,5) AS CENTER, nvl(u.name, 'n/r') AS ORG, l.inn
from service_point t left join ufps_names u on u.NUM = SUBSTR (t.kgp, 1,5), legal_person l
where t.is_delete=0 and t.legal_person=l.object_id and t.legal_person not in (90,96)


и
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
   SELECT SUBSTR (o.Kgp_Of_Getpoint, 1,5) AS CENTER,
   sum (case when (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then o.client_sum else 0 end) as GET_SUM,
   sum (case when (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then 1 else 0 end) as GET_NUM,
   sum(case when o.TYPE_OF_SENDING  = 6 and o.COD_FLAG = 1 AND (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then o.client_sum else 0 end) as GET_SUM_NP_card,
   sum(case when o.TYPE_OF_SENDING  = 6 and o.COD_FLAG = 1 AND (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then 1 else 0 end) as GET_NUM_NP_card,
   sum(case when o.TYPE_OF_SENDING  = 6 and o.order_category=6 and o.COD_FLAG = 0 AND (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then o.client_sum else 0 end) as GET_SUM_B_card,
   sum(case when o.TYPE_OF_SENDING  = 6 and o.order_category=6  and o.COD_FLAG = 0 AND (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then 1 else 0 end) as GET_NUM_B_card,
   sum(case when o.TYPE_OF_SENDING  = 6 and o.order_category!=6 and o.COD_FLAG = 0 AND (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then o.client_sum else 0 end) as GET_SUM_other_card,
   sum(case when o.TYPE_OF_SENDING  = 6 and o.order_category!=6  and o.COD_FLAG = 0 AND (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then 1 else 0 end) as GET_NUM_other_card,
   sum(case when o.TYPE_OF_SENDING  != 6 and o.COD_FLAG = 1 AND (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then o.client_sum else 0 end) as GET_SUM_NP,
   sum(case when o.TYPE_OF_SENDING  != 6 and o.COD_FLAG = 1 AND (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then 1 else 0 end) as GET_NUM_NP,  
   sum(case when o.TYPE_OF_SENDING  != 6 and o.order_category=6 and o.COD_FLAG = 0 AND (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then o.client_sum else 0 end) as GET_SUM_B,
   sum(case when o.TYPE_OF_SENDING  != 6 and o.order_category=6  and o.COD_FLAG = 0 AND (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then 1 else 0 end) as GET_NUM_B,
   sum(case when o.TYPE_OF_SENDING  != 6 and o.order_category!=6 and o.COD_FLAG = 0 AND (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then o.client_sum else 0 end) as GET_SUM_other,
   sum(case when o.TYPE_OF_SENDING  != 6 and o.order_category!=6  and o.COD_FLAG = 0 AND (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004) then 1 else 0 end) as GET_NUM_other,
   sum(case when o.Order_Status  = 6 AND (o.Paid_Rep_Stamp IS NULL OR o.Paid_Rep_Stamp > 202004) then o.client_sum else 0 end) as RETN_S,
   sum(case when o.Order_Status  = 6 AND (o.Paid_Rep_Stamp IS NULL OR o.Paid_Rep_Stamp > 202004) then 1 else 0 end) as RETN_N             
        FROM Work_Order o
       WHERE o.Wrk_Regime = 2
         AND o.Order_Status IN (1, 3, 5, 6, 7)
         AND ((o.Paid_Rep_Stamp IS NULL OR o.Paid_Rep_Stamp > 202004) OR
             (o.Get_Rep_Stamp IS NULL OR o.Get_Rep_Stamp > 202004))       
         group by  SUBSTR (o.Kgp_Of_Getpoint, 1,5)
...
Рейтинг: 0 / 0
Объединение запросов
    #39958877
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
USR_2020,

технически можно так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT список_полей
FROM
(
запрос1
) t1 
JOIN  
(
запрос2
) t2
ON t1.CENTER = t2.CENTER


При необходимости добавить LEFT (тогда порядок подзапросов тоже может понадобиться поменять).

А вот что нужно логически - из вашего вопроса непонятно.
...
Рейтинг: 0 / 0
Объединение запросов
    #39958880
USR_2020
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Слева (Первый запрос) Список CENTER к которому нужно приписывать данные из второго запроса, видимо левым джойном, если я правильно понимаю.

А если еще третий мне запрос присоединить по оплате ? ))
...
Рейтинг: 0 / 0
Объединение запросов
    #39958890
USR_2020
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

В общем, левый джойн помог, спасибо.
Попдозреваю, что по этой же схеме и третий запрос смогу!

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


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