需要帮助...我确实尝试过,几乎完成了60%(我想)...
fyi:我们正在使用DB2,如果我的问题不清楚,请告诉我。
我们最初的要求是在以下情况下找到PRODUCT_ID和Part_Serial_No:
首要条件:
他们在实际产品上安装了actual_part
表结构为:
PRODUCT_ID PART_NAME PART_SERIAL_NUMBER
---------- --------- --------------
1 ACTUAL_PART ACTUAL_SERIAL_1
2 ACTUAL_PART ACTUAL_SERIAL_2
所以我的SQL很简单:
SELECT PRODUCT_ID, PART_SERIAL_NUMBER FROM TABLE1 WHERE PART_NAME='ACTUAL_PART'
第二个要求:
他们更改了要求。他们说,他们在实际产品中安装了sub_part,而实际零件将安装在sub_part上。
表结构更改为:
PRODUCT_ID PART_NAME PART_SERIAL_NUMBER
---------- --------- --------------
1 SUB_PART SUB_PART_SERIAL_1
SUB_PART_SERIAL_1 ACTUAL_PART ACTUAL_SERIAL_1
2 SUB_PART SUB_PART_SERIAL_2
SUB_PART_SERIAL_2 ACTUAL_PART ACTUAL_SERIAL_2
所以我更改了SQL,它起作用了:
SELECT part1.PRODUCT_ID, part2.Part_Serial_No
from TABLE1 part1
INNER JOIN TABLE1 part2 on part1.PART_SERIAL_NUMBER = part2.PRODUCT_ID
where part1.PART_NAME in ('SUB_PART')
and part2.PART_NAME in ('ACTUAL_PART')
第三项要求:
同样,他们更改了要求。他们说,他们在实际产品中安装了一个sub_part,并且将在sub_part上安装另一个sub_sub_part。实际零件将安装在sub_sub_part上。
表结构更改为:
PRODUCT_ID Part_Name PART_SERIAL_NUMBER
---------- --------- --------------
1 SUB_PART SUB_PART_SERIAL_1
SUB_PART_SERIAL_1 SUB_SUB_PART SUB_SUB_PART_SERIAL_1
SUB_SUB_PART_SERIAL_1 ACTUAL_PART ACTUAL_SERIAL_1
2 SUB_PART SUB_PART_SERIAL_2
SUB_PART_SERIAL_2 SUB_SUB_PART SUB_SUB_PART_SERIAL_2
SUB_SUB_PART_SERIAL_2 ACTUAL_PART ACTUAL_SERIAL_2
在这里我需要帮助来获取PRODUCT_ID和PART_SERIAL_NUMBER
答案 0 :(得分:1)
您可以将表加入三次,如下所示:
select
a.product_id,
b.product_id as part_id,
c.product_id as subpart_id,
c.part_serial_number
from table1 a
join table1 b on b.product_id = a.part_serial_number
join table1 c on c.product_id = b.part_serial_number
where a.part_name = 'SUB_PART'
and b.part_name = 'SUB_SUB_PART'
and c.part_name = 'ACTUAL_PART'