powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как решить задачу...2
6 сообщений из 6, страница 1 из 1
Как решить задачу...2
    #35815831
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть три таблицы:
- "Изделие" IZ (cod_iz, name_iz, prm1, ..., prmN).
- "Деталь" DET (cod_det, name_det).
- "Состав" ST (cod_iz, cod_det).
В состав изделия входят разные детали. Надо найти все Изделия, которые содержат указанный список деталей.
Пробую использовать в DW-Tree типа такого:
Код: plaintext
1.
2.
3.
4.
select IZ.cod_iz, IZ.name_iz, prm1, ..., prmN, count(distinct IZ.cod_iz)
from IZ, ST
where ST.cod_det in ( 111 , 222 )
group by IZ.cod_iz, IZ.name_iz, prm1, ..., prmN
having count(distinct ST.cod_det) =  2 )

Что-то видно не так, так как идет задвоение строк. Изделие_1, в котором есть детали 111 и 222, выводятся в две строки. Где у меня ошибка?
...
Рейтинг: 0 / 0
Как решить задачу...2
    #35815925
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Список группировки не совпадает
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Как решить задачу...2
    #35816061
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001Список группировки не совпадает

Т.е. должно быть так?
Код: plaintext
group by IZ.cod_iz, IZ.name_iz, prm1, ..., prmN, count(distinct IZ.cod_iz)
...
Рейтинг: 0 / 0
Как решить задачу...2
    #35816371
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может в where нужно дописать
and IZ.cod_iz = ST.cod_iz
должны же быть связаны как-то эти таблицы

а в группировку "count(" думаю не стоит писать
...
Рейтинг: 0 / 0
Как решить задачу...2
    #35816384
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем вообще выводить count?
Во-вторых VanoR правильно заметил - не задано отношение между таблицами

-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Как решить задачу...2
    #35819447
rhs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rhs
Гость
Код: plaintext
1.
2.
3.
4.
5.
select IZ.cod_iz, IZ.name_iz, prm1, ..., prmN
from IZ
where exists( select * from ST where ST.cod_iz= IZ.cod_iz
                    and ST.cod_det in ( 111 , 222 )
                  )
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как решить задачу...2
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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