我有两张桌子: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 +-----+------+-------------+ | 光盘 | DSC | PRD_TYPE_CD | +-----+------+-------------+ | 3D | 东西 | SKD3 | | 直流| 不同的东西| SKD | | DN2 | 类似的东西 | SKD | +-----+------+-------------+ CK_PRICE +---------+-------------+---------+------+--------+ | CU_TYPE | PRD_TYPE_CD | PART_CD | 数量 | 动态链接库 | +---------+-------------+---------+------+--------+ | 一个 | SKD3 | 1 | 100 | 10 | | 一个 | SKD3 | 1 | 200 | 20 | | 一个 | SKD3 | 1 | 300 | 30 | | 一个 | SKD | 1 | 100 | 50 | | 一个 | SKD | 1 | 200 | 100 | | 交流 | SKD3 | 1 | 300 | 30 | | 交流 | SKD | 1 | 100 | 100 | | 交流 | SKD | 1 | 200 | 200 | | 交流 | SKD | 1 | 300 | 300 | | 交流 | SKD | 1 | 400 | 400 | +---------+-------------+---------+------+--------+ 组合: +----+-----------------+---------+-----+---------+ ----------+ | 光盘 | DSC | PART_CD | 数量 | DLLRS_A | DLLRS_AC | +----+-----------------+---------+-----+---------+ ----------+ | 3D | 东西 | 1 | 100 | 10 | 空 | | 3D | 东西 | 1 | 200 | 20 | 空 | | 3D | 东西 | 1 | 300 | 30 | 60 | | 直流| 不同的东西| 1 | 100 | 50 | 100 | | 直流| 不同的东西| 1 | 200 | 100 | 200 | | 直流| 不同的东西| 1 | 300 | 空 | 300 | | 直流| 不同的东西| 1 | 400 | 空 | 400 | +----+-----------------+---------+-----+---------+ ----------+