powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Объединить в таблицу из двух столбцов два запроса. Не UNION
3 сообщений из 3, страница 1 из 1
Объединить в таблицу из двух столбцов два запроса. Не UNION
    #39610026
arelsom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Прошу помочь! Перепробовал множество вариантов, но решения не нашёл. Столкнулся с такой проблемой.
Есть два запроса из двух разных таблиц с условиями, выводят количество. Нужно чтобы они образовали два столбца.

Первый запрос:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT COUNT(DISTINCT VL.CLIENT_ID) AS WITHOUT_P  FROM V_LOAN VL 
LEFT JOIN IFS_KERNEL.CLIENT_PHONE cp ON VL.CLIENT_ID = cp.CLIENT_ID
left join IFS_KERNEL.DIC_ITEM dic on (dic.ID = cp.SOURCE_ID)
left join LOAN_OUTER lo on (lo.id = VL.id)
WHERE CP.CLIENT_ID IS NULL  AND cp.PHONE IS NULL
AND LO.ORG_ID = 61
and VL.LIST_NUMBER like '№12-КЛ' ) AS "Without_phones"



Второй:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT count(DISTINCT CP.CLIENT_ID) as "With_p" FROM IFS_KERNEL.CLIENT_PHONE CP
left join V_LOAN VL on (VL.CLIENT_ID = cp.CLIENT_ID)
left join IFS_KERNEL.DIC_ITEM dic on (dic.ID = cp.SOURCE_ID)
left join LOAN_OUTER lo on (lo.id = VL.id)
where cp.SOURCE_ID is not null
AND  lo.ORG_ID = 61
and VL.LIST_NUMBER like '№12-КЛ')    as "With_phones" 



Скорее всего для вас будет сложно понять что к чему, тогда прошу по аналогии любой пример, главное чтоб из разных таблиц.. примеров объединений запросов из одной куча.

У меня работает такой вариант, но это хрень:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
select (SELECT COUNT(DISTINCT VL.CLIENT_ID) AS WITHOUT_P  FROM V_LOAN VL 
LEFT JOIN IFS_KERNEL.CLIENT_PHONE cp ON VL.CLIENT_ID = cp.CLIENT_ID
left join IFS_KERNEL.DIC_ITEM dic on (dic.ID = cp.SOURCE_ID)
left join LOAN_OUTER lo on (lo.id = VL.id)
WHERE CP.CLIENT_ID IS NULL  AND cp.PHONE IS NULL
AND LO.ORG_ID = 61
and VL.LIST_NUMBER like '№12-КЛ' ) AS "Without_phones", 

(SELECT count(DISTINCT CP.CLIENT_ID) as "With_p" FROM IFS_KERNEL.CLIENT_PHONE CP
left join V_LOAN VL on (VL.CLIENT_ID = cp.CLIENT_ID)
left join IFS_KERNEL.DIC_ITEM dic on (dic.ID = cp.SOURCE_ID)
left join LOAN_OUTER lo on (lo.id = VL.id)
where cp.SOURCE_ID is not null
AND  lo.ORG_ID = 61
    and VL.LIST_NUMBER like '№12-КЛ')  as "With_phones" 
from (SELECT COUNT(DISTINCT VL.CLIENT_ID) AS WITHOUT_P   FROM V_LOAN VL 
LEFT JOIN IFS_KERNEL.CLIENT_PHONE cp ON VL.CLIENT_ID = cp.CLIENT_ID
left join IFS_KERNEL.DIC_ITEM dic on (dic.ID = cp.SOURCE_ID)
left join LOAN_OUTER lo on (lo.id = VL.id)
WHERE CP.CLIENT_ID IS NULL  AND cp.PHONE IS NULL )
...
Рейтинг: 0 / 0
Объединить в таблицу из двух столбцов два запроса. Не UNION
    #39610259
Фотография mRdUKE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arelsomУ меня работает такой вариант, но это хрень:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select (SELECT COUNT(DISTINCT VL.CLIENT_ID) AS WITHOUT_P  FROM V_LOAN VL 
LEFT JOIN IFS_KERNEL.CLIENT_PHONE cp ON VL.CLIENT_ID = cp.CLIENT_ID
left join IFS_KERNEL.DIC_ITEM dic on (dic.ID = cp.SOURCE_ID)
left join LOAN_OUTER lo on (lo.id = VL.id)
WHERE CP.CLIENT_ID IS NULL  AND cp.PHONE IS NULL
AND LO.ORG_ID = 61
and VL.LIST_NUMBER like '№12-КЛ' ) AS "Without_phones", 
...

А ваш "рабочий" вариант верные данные выдаёт? Не зная структуры ваших данных, верного совета не дать, имхо.
Если V_LOAN у Вас список "клиентов" содержит, то как вариант, для направления мысли:
Код: sql
1.
2.
3.
4.
5.
6.
select sum(case when not exists (select 1 from IFS_KERNEL.CLIENT_PHONE CP where cp.CLIENT_ID = VL.CLIENT_ID) then 1 end) "Without_phones"
      ,sum(case when exists (select 1 from IFS_KERNEL.CLIENT_PHONE CP where cp.CLIENT_ID = VL.CLIENT_ID) then 1 end) "With_phones"
from V_LOAN VL, LOAN_OUTER lo 
where VL.id = lo.id
and LO.ORG_ID = 61 
and VL.LIST_NUMBER like '№12-КЛ%'

но сдаётся мне, что это представление, которое также ссылается на те же таблицы.. А вообще - подфорумом ошиблись.

Модератор: Тема перенесена из форума "Oracle Forms".
...
Рейтинг: 0 / 0
Объединить в таблицу из двух столбцов два запроса. Не UNION
    #39610475
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arelsom,

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

  1  select
  2   (select count(distinct job) from emp) c_emp
  3  ,(select count(deptno) from dept) c_dept
  4* from dual
SQL> /

     C_EMP     C_DEPT
---------- ----------
         5          4



чем не устраивает?

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


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