SQL-запрос - не удается найти родительские части, которые содержат два определенных компонента - PullRequest
0 голосов
/ 03 октября 2019

Я не могу найти родительские части, которые содержат 2 определенных компонента, которые определенно существуют.

Я пробовал следующий запрос в приложении. Я знаю, что родительские родительские части, содержащие эти компоненты, существуют, т.е. когда я выбираю все.

select *
from BomStructure
where  Component='322058-000000' and Component= '322123-301200' 

Я не получил результатов. enter image description here

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Попробуйте это:

select * from BomStructure BS
where 
Component = '322058-000000' and
exists (select 1 from BomStructure where ParentPart = BS.ParentPart and Component = '322123-301200')
0 голосов
/ 03 октября 2019

Столбец Component не может быть равен двум разным значениям в одной строке одновременно.

Один из способов сделать это - использовать cte или производную таблицу, чтобы получить ParentPart, который содержит хотя бы одну запись для каждого компонента, и объединить с исходной таблицей:

WITH CTE AS
(
    SELECT ParentPart
    FROM BomStructure 
    WHERE Component IN('322058-000000', '322123-301200')
    GROUP BY ParentPart
    HAVING COUNT(DISTINCT Component) = 2
)

SELECT BS.*
FROM BomStructure As BS
JOIN CTE 
    ON BS.ParentPart = CTE.ParentPart 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...