Подзапрос Postgres: две таблицы, не связанные напрямую

тарелки

номер_таблицы дата Код товара 1 01-12-2020 101 2 01-12-2020 202 3 02-12-2020 101 4 02-12-2020 202 5 02-12-2020 303

производство

номер заказа дата Код товара расходы 1001 01-12-2020 101 10,95 1002 01-12-2020 202 19.00 1003 02-12-2020 101 11.50 1004 02-12-2020 202 20.05 1005 02-12-2020 303 17.00

результат запроса, который мне нужно получить:

номер_таблицы расходы 4 20.05

Они не связаны с pk и fk,

каждый продукт может иметь более одной производственной себестоимости.

Я предполагаю, что мне нужно создать какой-то подзапрос, где учитывать всегда два столбца: date и product_id

ниже запрос, к сожалению, дает ошибку

SELECT pl.plate_id, pr.cost
FROM plates pl
JOIN (select * from production pr where pr.date=pl.date and pr.product_id=pl.product_id)
WHERE pl.product_id = 4;

Почему 20.05 вместо 19.00? Вы заказываете по самой последней дате или по самой высокой цене?

Adrian Klaver 14.12.2020 22:02
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
1
86
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Кажется, вы хотите присоединиться к product_id и date:

select pl.plate_id, pr.cost
from plates pl
inner join production pr using (product_id, date)
where pl.plate_id = 4

в моем реальном случае мне пришлось написать: внутреннее соединение mrp_production pr on (pr.product_id=pp.id, pr.date_planned_start::date=m.date), но я получаю следующую ошибку: аргумент JOIN/ON должен быть логического типа, не вводить запись

kubaSpolsky 14.12.2020 23:11

@кубаСпольски. Итак: inner join mrp_production pr on pr.product_id=pp.id and pr.date_planned_start::date=m.date

GMB 14.12.2020 23:15

Другие вопросы по теме