Доступ подзапроса на нескольких условиях - PullRequest
0 голосов
/ 07 марта 2020

Этот SQL запрос должен быть выполнен в ACCESS.

Я пытаюсь сделать подзапрос для общих продаж, но я хочу связать продажу с провинцией И с продуктом. Приведенный ниже запрос будет работать с одним или другим: (po.product_name = allp.all_products) AND (p.province = allp.all_province); - но это не займет и то и другое.

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

Select

p.province as [Province],
po.product_name as [Product],
all_price


FROM
(purchase_order po
INNER JOIN person p
on p.person_id = po.person_id)

left join
(
select
po1.product_name AS [all_products],
sum(pp1.price) AS [all_price],
p1.province AS [all_province]
from (purchase_order po1
INNER JOIN product pp1
on po1.product_name = pp1.product_name)
INNER JOIN person p1
on po1.person_id = p1.person_id
group by po1.product_name, pp1.price, p1.province
)
as allp
on  (po.product_name = allp.all_products) AND (p.province = allp.all_province);

1 Ответ

0 голосов
/ 07 марта 2020

Сделайте первый выбор sql в таблице, присвоив ей псевдоним, и соедините таблицу 1 с таблицей 2. У меня нет структуры таблицы или данных для ее проверки, но я думаю, что это приведет вас по правильному пути :

select table1.*, table2.*
from
(Select
p.province as [Province],
po.product_name as [Product]
--removed this  ,all_price 
FROM
(purchase_order po
INNER JOIN person p
on p.person_id = po.person_id) table1

left join
(
select
po1.product_name AS [all_products],
sum(pp1.price) AS [all_price],
p1.province AS [all_province]
from (purchase_order po1
INNER JOIN product pp1
on po1.product_name = pp1.product_name)
INNER JOIN person p1
on po1.person_id = p1.person_id
group by po1.product_name, pp1.price, p1.province --check your group by, I dont think you want pp1.price here if you want to aggregate
) as table2  --changed from allp
on  (table1.product = table2.all_products) AND (table1.province = table2.all_province);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...