我有两个表格:ck_startup
和ck_price
。价格表包含列cu_type
,prd_type
,part_cd
,qty
和dllrs
。启动表通过ck_startup.prd_type_cd = ck_price.prd_type
上的一对多关系链接到价格表。多个自连接加上一个内连接
价格表包含同一产品/零件/数量但在不同客户类型下的多个条目。并非所有客户类型都具有这三个值的相同独特组合。我试图创建一个查询,会做两两件事:
- 加入从
ck_startup
一些列到ck_price
(描述,以及一些额外的价值)。 - 将
ck_price
加入自己,每个客户类型都有一个dllrs
列。所以总的来说,我只有产品/零件/数量的每个唯一关键字的一个实例,以及每个客户价格列中的值(如果他们有一个)。
我从来没有使用自加入表格,到目前为止,我只能得到记录来显示两个客户都有相同的选项可用。
而且因为有人会要求我张贴的示例代码,这里是蹩脚的查询,这并不表明缺少价格:
select pa.*, pac.dllrs from ck_price pa
join ck_price pac on pa.prd_type = pac.prd_type and pa.part_carbon_cd = pac.part_carbon_cd and pa.qty = pac.qty
where pa.cu_type = 'A' and pac.cu_type = 'AC';
编辑:下面是来自这两个表的样本数据,以及如何我要他们看的时候我做:
CK_STARTUP +-----+-----------------+-------------+ | CD | DSC | PRD_TYPE_CD | +-----+-----------------+-------------+ | 3D | Stuff | SKD3 | | DC | Different stuff | SKD | | DN2 | Similar stuff | SKD | +-----+-----------------+-------------+ CK_PRICE +---------+-------------+---------+-----+-------+ | CU_TYPE | PRD_TYPE_CD | PART_CD | QTY | DLLRS | +---------+-------------+---------+-----+-------+ | A | SKD3 | 1 | 100 | 10 | | A | SKD3 | 1 | 200 | 20 | | A | SKD3 | 1 | 300 | 30 | | A | SKD | 1 | 100 | 50 | | A | SKD | 1 | 200 | 100 | | AC | SKD3 | 1 | 300 | 30 | | AC | SKD | 1 | 100 | 100 | | AC | SKD | 1 | 200 | 200 | | AC | SKD | 1 | 300 | 300 | | AC | SKD | 1 | 400 | 400 | +---------+-------------+---------+-----+-------+ COMBO: +----+-----------------+---------+-----+---------+----------+ | CD | DSC | PART_CD | QTY | DLLRS_A | DLLRS_AC | +----+-----------------+---------+-----+---------+----------+ | 3D | Stuff | 1 | 100 | 10 | null | | 3D | Stuff | 1 | 200 | 20 | null | | 3D | Stuff | 1 | 300 | 30 | 60 | | DC | Different stuff | 1 | 100 | 50 | 100 | | DC | Different stuff | 1 | 200 | 100 | 200 | | DC | Different stuff | 1 | 300 | null | 300 | | DC | Different stuff | 1 | 400 | null | 400 | +----+-----------------+---------+-----+---------+----------+
Oracle是否有一个完整的外部联接? – HLGEM
是的。从未使用它。编辑:切换此查询全外连接不会更改结果集。记录中'A'下有423条记录,'AC'下有384条记录。结果集是312条记录。 – Logarr
尝试添加在哪里的条件上 – HLGEM