У меня есть таблица со столбцами main_article, sub_article, qty. У меня может быть одна main_article, которая может иметь как sub_article одну статью, которая также может быть в таблице как main_article
main_article | sub_article| qty
-------------+------------+----
20 | 4 | 15
20 | 6 | 14
22 | 4 | 12
22 | 33 | 2
22 | 20 | 10
Мне нужно получить значения для main_article 22 с sub_articles из main_article 20 с количеством sub_articles, умноженным на количество 10, учитывая таблицу, подобную следующей.
main_article | sub_article| qty
-------------+------------+-----
22 | 4 | 150
22 | 6 | 140
22 | 4 | 12
22 | 33 | 2
Я пробовал несколько подходов с JOIN, SELECT FROM все безуспешно.
Я могу получить значение main_article, которое имеет sub_articles, с помощью:
select
ac.main_article, ac.sub_article, ac.qty
from
compose_articles ac
where
ac.main_article in (select ac2.subarticle from compose_articles ac2);
И получить значения из подстатьи по
select *
from compose_articles ac
where sub_article in (select ac2.main_article from compose_articles ac2);
Пожалуйста, обновите свой вопрос, а не добавляйте дополнительную информацию в комментарии
извините, первый раз прошу помощи


Основываясь на вопросе, сначала извлеките основные статьи, которые являются подстатьями, а затем рассчитайте количество. Наконец, выберите из основной таблицы и исключите основные/дополнительные статьи, которые являются подстатьями. Ниже запрос поможет
WITH sub_articles AS(
SELECT main_article, sub_article,qty FROM compose_articles
WHERE sub_article IN (SELECT main_article FROM compose_articles)
),
calculated_subarticles AS (
SELECT a.main_article,b.sub_article, a.qty * b.qty as qty FROM sub_articles a
JOIN compose_articles b ON a.sub_article = b.main_article
)
SELECT * FROM compose_articles
WHERE main_article NOT IN (SELECT sub_article FROM sub_articles)
AND sub_article NOT IN (SELECT sub_article FROM sub_articles)
UNION
SELECT * FROM calculated_subarticles
Пожалуйста, обновите свой вопрос с помощью запросов, которые вы пробовали.