Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / где ошибка ? not exists / 16 сообщений из 16, страница 1 из 1
22.11.2018, 20:45
    #39737148
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
всем привет, извините если повторюсь уже создавал тему по exists. подскажите что не так в моем коде ? по факту у меня не должно вывести записей, если я ничего не путаю. Но по результату наоборот вывел все записи где есть CONNECT_IB
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select * from brscontracts b
inner join brscontractattrs br on (b.contractid = br.objectid)
where not exists (
SELECT * 
FROM Brscontractattrs bc 
WHERE bc.attrcode = 'CONNECT_IB'
AND br.objectid=b.contractkind
)
and br.attrcode = 'CONNECT_IB'
...
Рейтинг: 0 / 0
22.11.2018, 20:51
    #39737150
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
petrovichvanyaне должно вывести записейна основании чего?

petrovichvanyaнаоборот вывел все записи где есть CONNECT_IBТы же само написало условие r.attrcode = 'CONNECT_IB'
...
Рейтинг: 0 / 0
22.11.2018, 20:57
    #39737155
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
-2-,

на основании этого "not exists" и "bc.attrcode = "CONNECT_IB" должно было не вывести записи где есть CONNECT_IB

а это
Код: plsql
1.
and br.attrcode = 'CONNECT_IB'

написал для того, чтобы убедится, что записей будет 0
...
Рейтинг: 0 / 0
22.11.2018, 20:58
    #39737159
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
petrovichvanyaна основании этогоТебе рано писать сложные запросы.
...
Рейтинг: 0 / 0
22.11.2018, 20:59
    #39737160
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
petrovichvanyaна основании этогоТебе рано писать сложные запросы.
...
Рейтинг: 0 / 0
22.11.2018, 21:02
    #39737164
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
Elic, это не сложный, с exists еще опыта не было работы. выше я писал почему запрос должен был вывести 0 записи. Скажите где я ошибаюсь ?
...
Рейтинг: 0 / 0
22.11.2018, 21:04
    #39737165
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select * from brscontracts b
inner join brscontractattrs br on (b.contractid = br.objectid)
where not exists (
SELECT * 
FROM Brscontractattrs bc 
WHERE bc.attrcode = 'CONNECT_IB'
AND br.objectid=b.contractkind -- replace with bc.objectid=b.contractkind
)
and br.attrcode = 'CONNECT_IB'



SY.
P.S. Надеюсь attrcode NOT NULL?
...
Рейтинг: 0 / 0
22.11.2018, 21:05
    #39737167
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
petrovichvanyaна основании этого "not exists" и "bc.attrcode = "CONNECT_IB" должно было не вывести записи где есть CONNECT_IBгде есть записи, подпадающие под условие, - не должно, а где нет записей - выводит.
...
Рейтинг: 0 / 0
22.11.2018, 21:09
    #39737169
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
SY,

изменил, но результат тот же
attrcode все заполненные
...
Рейтинг: 0 / 0
22.11.2018, 21:22
    #39737180
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
petrovichvanyaSY,

изменил, но результат тот же
attrcode все заполненные
А оно точно присутствует в Brscontractattrs
Код: plsql
1.
bс.objectid=b.contractKIND


?
...
Рейтинг: 0 / 0
22.11.2018, 21:25
    #39737181
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
petrovichvanya,

Ты хочешь вывести данные по контрактам и их атрибутам для контрактов без атрибутов CONNECT_IB? Тогда:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select * from brscontracts b
inner join brscontractattrs br on (b.contractid = br.objectid)
where not exists (
SELECT * 
FROM Brscontractattrs bc 
WHERE bc.attrcode = 'CONNECT_IB'
AND bc.objectid = br.objectid
)
/



SY.
...
Рейтинг: 0 / 0
22.11.2018, 21:26
    #39737185
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
petrovichvanyaElic, это не сложныйТогда тебе вообще нельзя писать запросы.
...
Рейтинг: 0 / 0
22.11.2018, 21:34
    #39737188
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
SY,

спасибо, понял в чем проблема была
когда используем exists всегда нужно связывать одинаковые таблицы ?
...
Рейтинг: 0 / 0
22.11.2018, 21:35
    #39737189
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
Elic, а вы сразу с рождения профессионалам стали ?
...
Рейтинг: 0 / 0
22.11.2018, 21:47
    #39737190
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
petrovichvanyaа вы сразу с рождения профессионалам стали ?Ты - хочешь. Но так не бывает. А идти нужно маленькими шажками - от простого к сложному. Ты же навалил в одну кучу говна join-нов с exist-ами и ещё имеешь претензию полагать, что она могла бы работать.
...
Рейтинг: 0 / 0
22.11.2018, 21:52
    #39737194
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
где ошибка ? not exists
petrovichvanyaкогда используем exists всегда нужно связывать одинаковые таблицы ?

Связывать надо связанные (логикой запроса) таблицы. Есть атрибут контракта. Ты хочешь узнать есть ли у ЭТОГО контракта атрибуты CONNECT_IB. Естественно BC нужно связать по ЭТОМУ контракту.

SY.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / где ошибка ? not exists / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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