Получать противоположность следующего query в Oracle

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

Подмостки консультации - следующие:

  1. МАРКИРОВКА (у вышеупомянутой таблицы есть числа счета специфических клиентов, как пойдите специфические средства для управляющих и каналы).

  2. ОКОНЧАТЕЛЬНЫЙ РАСЧЕТ (вышеупомянутая таблица содержит окончательный расчет, который есть у клиентов из-за id. Если у клиента нет окончательного расчета, эта не появляется в таблице).

  3. КЛИЕНТЫ (у вышеупомянутой таблицы есть информация всех клиентов с Вашим числом счета, я связываю ее с таблицей marcaje из-за числа счета, так как как я объяснил в таблице marcaje он содержит эту только специфические клиенты (которые являются теми, которые для меня имеют значение действительно), также я связываю ее с таблицей saldos из-за id, так как таблица saldos только они могут быть связанными из-за id с таблицей clientes).

  4. УПРАВЛЯЮЩИЙ (вышеупомянутая таблица имеет id необходимых управляющих, чтобы реализовывать консультацию).

  5. КАНАЛ (вышеупомянутая таблица имеет id необходимых каналов, чтобы реализовывать консультацию).

Query #1, этот позволяет получать необходимые числа счетов, чтобы мочь получать Ваш окончательный расчет. (он возвращает 422 число счета, которые находятся в таблице marcaje).

select 
        M.NUMERO_DE_CUENTA as cuentas
    from MARCAJE M
inner join CLIENTES C on C.NUMERO_DE_CUENTA = M.NUMERO_DE_CUENTA
inner join GERENTE G on G.ID = M.ID_GERENTE
inner join CANAL CN on CN.ID = M.ID_CANAL
    where CN.ID = '2' and G.ID = '41';

Query #2, он позволяет получать этот saldos счетов, которые находятся в marcaje, не только выданные первого query, а все счета.

select
     C.NUMERO_DE_CUENTA   as cuentas
     ,S.SALDO                as saldo_disponible
from CLIENTES C 
      inner join SALDOS S on S.ID = C.ID
      inner join MARCAJE M on M.NUMERO_DE_CUENTA = C.NUMERO_DE_CUENTA

Query #3, это связь между первым и вторым query, получает счета первого query, у которых есть окончательный расчет во втором query (они возвращают 176 число счета, который у них есть saldo, нет 247 число счета, которые являются теми, у которых нет какого-то типа saldo).

with 

    gerente as (
        select 
                M.NUMERO_DE_CUENTA as cuentas
            from MARCAJE M
        inner join CLIENTES C on C.NUMERO_DE_CUENTA = M.NUMERO_DE_CUENTA
        inner join GERENTE G on G.ID = M.ID_GERENTE
        inner join CANAL CN on CN.ID = M.ID_CANAL
            where CN.ID = '2' and G.ID = '41'
    ),

    saldos as (
        select
                C.NUMERO_DE_CUENTA   as cuentas
               ,S.SALDO                as saldo_disponible
        from CLIENTES C 
            inner join SALDOS S on S.ID = C.ID
            inner join MARCAJE M on M.NUMERO_DE_CUENTA = C.NUMERO_DE_CUENTA
    )

    select
        g.cuentas,
        s.saldo_disponible
    from gerente g, saldos s
    where g.cuentas = s.cuentas;

Как я это сказал сначала, моя цель состоит в том, чтобы получать этих 247 чисел счета, которого у них нет saldo, единственное, что пришло в голову мне, состояло в том, чтобы использовать функцию not exists но оно не функционировало.

Заранее спасибо за чтение этого и стараться помогать мне в вышеупомянутой проблеме

5
задан 09.08.2019, 18:41
0 ответов