我需要从两个表中获取每个唯一的批号,包括产品代码,收到的日期,到期日期和数量。
我有一张唯一批次需要日期(bmwohm)的表和一张批次与日期(有些重复)(stquem)的表格。
我可以从bmwohm中选择唯一的批号(works_order),这将返回正确的数据但是对于第二个表,我需要找到第一个匹配的批号和相关的字段(因为有些是重复的),包括所有批次的' t包含在第一个查询中。
这是我对bmwohm表的查询:
select works_order, product_code, quantity_required
from bmwohm
where warehouse = 'W1' or warehouse = 'W3'
这是我对stquem表的不正确的不同查询:
select distinct on(batch_number), prod_code, date_received, expiry_date, quantity
from stquem
where warehouse = 'W1' or warehouse = 'W3'
我如何返回不同的批次以及与该记录关联的字段?
我尝试通过右连接将两者合并,使用以下方式返回数量字段和产品代码:
select works_order, product_code, quantity_required, batch_number, prod_code,
date_received, expiry_date, quantity
from bmwohm as uniqueLots
right join scheme.stquem as duplicateLots
on uniqueLots.works_order = (select distinct duplicateLots.batch_number)
where (uniqueLots.warehouse = 'W1' or uniqueLots.warehouse = 'W3')
and (duplicateLots.warehouse = 'W1' or duplicateLots.warehouse = 'W3')
如何将两者结合起来以获得具有额外四个字段的唯一批次的结果?
答案 0 :(得分:0)
尝试修改您的查询有点像
select distinct b.works_order,
b.product_code,
b.quantity_required,
s.batch_number,
s.prod_code,
s.date_received,
s.expiry_date,
s.quantity
from bmwohm b
join scheme.stquem s
on b.works_order = s.batch_number
where b.warehouse in ('W1','W3')
and s.warehouse in ('W1' , 'W3');