5,889
社区成员
发帖
与我相关
我的任务
分享
WITH
red as(
select p.PART_COMM_GROUP,p.PART_COMM_NAME,p.PART_NUMBER,p.PART_DESCRIPTION,p.PART_LONG_DESCRIPTION, R.PART_SUPPLIER,R.PART_RETURNABLE,p.PART_MOTIONLESS,R.PART_RED_TYPE,R.COUNTRY_CODE,p.PART_SCREEN_TYPE,R.PART_CREDIT_PERCENTAGE, p.PART_BRAND,p.UCI_NEEDED,p.BAC_CODE,p.TPG_IPG_FLG,p.PART_READY,p.PART_STATUS,W.part_create_date
from DB2LUCI.PARTS_ATTS_TBL p
left outer join (
SELECT Temp.part_number,Temp.PART_SUPPLIER,Temp.PART_RETURNABLE, Temp.PART_RED_TYPE,Temp.COUNTRY_CODE,Temp.PART_CREDIT_PERCENTAGE
FROM DB2LUCI.redemption_info Temp
) R
on p.PART_NUMBER=R.PART_NUMBER
left outer join (
SELECT wc.part_number,wc.part_create_date
FROM DB2LUCI.PARTS_ATTS_FROMWC_TBL wc
) W
on p.PART_NUMBER = W.PART_NUMBER
where p.DELETE_FLAG ='N' and p.PART_NUMBER IN ('00K7892')
),
Recursive_Test_Par(PART_COMM_GROUP, PART_COMM_NAME, PART_NUMBER, PART_DESCRIPTION, PART_LONG_DESCRIPTION, PART_SUPPLIER, PART_RETURNABLE, PART_MOTIONLESS, PART_RED_TYPE, COUNTRY_CODE, PART_SCREEN_TYPE, PART_CREDIT_PERCENTAGE, PART_BRAND, UCI_NEEDED, BAC_CODE, TPG_IPG_FLG, PART_READY, PART_STATUS, part_create_date,Rk_Num) as(
SELECT PART_COMM_GROUP, PART_COMM_NAME, PART_NUMBER, PART_DESCRIPTION, PART_LONG_DESCRIPTION, PART_SUPPLIER, PART_RETURNABLE, PART_MOTIONLESS, PART_RED_TYPE, COUNTRY_CODE, PART_SCREEN_TYPE, PART_CREDIT_PERCENTAGE, PART_BRAND, UCI_NEEDED, BAC_CODE, TPG_IPG_FLG, PART_READY, PART_STATUS, part_create_date,
ROW_NUMBER() OVER(PARTITION BY PART_RED_TYPE) --分组,生成序列,自我关联之用
FROM red
),
City_Join(PART_COMM_GROUP, PART_COMM_NAME, PART_NUMBER, PART_DESCRIPTION, PART_LONG_DESCRIPTION, PART_SUPPLIER, PART_RETURNABLE, PART_MOTIONLESS, PART_RED_TYPE, COUNTRY_CODE, PART_SCREEN_TYPE, PART_CREDIT_PERCENTAGE, PART_BRAND, UCI_NEEDED, BAC_CODE, TPG_IPG_FLG, PART_READY, PART_STATUS, part_create_date,R_Num) as(
SELECT PART_COMM_GROUP, PART_COMM_NAME, PART_NUMBER, PART_DESCRIPTION, PART_LONG_DESCRIPTION, PART_SUPPLIER, PART_RETURNABLE, PART_MOTIONLESS, PART_RED_TYPE, PART_SCREEN_TYPE, PART_CREDIT_PERCENTAGE, PART_BRAND, UCI_NEEDED, BAC_CODE, TPG_IPG_FLG, PART_READY, PART_STATUS, part_create_date,
CAST(COUNTRY_CODE AS VARCHAR(1000)),Rk_Num from Recursive_Test_Par WHERE Rk_Num=1
UNION ALL
SELECT a1.PART_COMM_GROUP, a1.PART_COMM_NAME, a1.PART_NUMBER, a1.PART_DESCRIPTION, a1.PART_LONG_DESCRIPTION, a1.PART_SUPPLIER, a1.PART_RETURNABLE, a1.PART_MOTIONLESS, a1.PART_RED_TYPE, a1.PART_SCREEN_TYPE, a1.PART_CREDIT_PERCENTAGE, a1.PART_BRAND, a1.UCI_NEEDED, a1.BAC_CODE, a1.TPG_IPG_FLG, a1.PART_READY, a1.PART_STATUS, a1.part_create_date,
CAST(a1.COUNTRY_CODE||'#'||b1.COUNTRY_CODE AS VARCHAR(1000)),a1.R_Num+1
FROM City_Join a1,Recursive_Test_Par b1
WHERE a1.PART_RED_TYPE=b1.PART_RED_TYPE and a1.R_Num=b1.Rk_Num-1
and a1.PART_NUMBER=b1.PART_NUMBER
)
SELECT a.PART_COMM_GROUP, a.PART_COMM_NAME, PART_NUMBER, a.PART_DESCRIPTION, a.PART_LONG_DESCRIPTION, a.PART_SUPPLIER, a.PART_RETURNABLE, a.PART_MOTIONLESS, a.PART_RED_TYPE,a.COUNTRY_CODE, a.PART_SCREEN_TYPE, a.PART_CREDIT_PERCENTAGE, a.PART_BRAND, a.UCI_NEEDED, a.BAC_CODE, a.TPG_IPG_FLG, a.PART_READY, a.PART_STATUS, a.part_create_date
FROM City_Join a INNER JOIN
(SELECT PART_COMM_GROUP, PART_COMM_NAME, PART_NUMBER, PART_DESCRIPTION, PART_LONG_DESCRIPTION, PART_SUPPLIER, PART_RETURNABLE, PART_MOTIONLESS, PART_RED_TYPE, PART_SCREEN_TYPE, PART_CREDIT_PERCENTAGE, PART_BRAND, UCI_NEEDED, BAC_CODE, TPG_IPG_FLG, PART_READY, PART_STATUS, part_create_date,max(R_Num) R_Num
from City_Join
GROUP BY PART_COMM_GROUP, PART_COMM_NAME, PART_NUMBER, PART_DESCRIPTION, PART_LONG_DESCRIPTION, PART_SUPPLIER, PART_RETURNABLE, PART_MOTIONLESS, PART_RED_TYPE, PART_SCREEN_TYPE, PART_CREDIT_PERCENTAGE, PART_BRAND, UCI_NEEDED, BAC_CODE, TPG_IPG_FLG, PART_READY, PART_STATUS, part_create_date
) b
ON a.PART_RED_TYPE=b.PART_RED_TYPE and a.R_Num=b.R_Num;
City_Join(PART_COMM_GROUP, PART_COMM_NAME, PART_NUMBER, PART_DESCRIPTION, PART_LONG_DESCRIPTION, PART_SUPPLIER, PART_RETURNABLE, PART_MOTIONLESS, PART_RED_TYPE, COUNTRY_CODE, PART_SCREEN_TYPE, PART_CREDIT_PERCENTAGE, PART_BRAND, UCI_NEEDED, BAC_CODE, TPG_IPG_FLG, PART_READY, PART_STATUS, part_create_date,R_Num) as(
SELECT PART_COMM_GROUP, PART_COMM_NAME, PART_NUMBER, PART_DESCRIPTION, PART_LONG_DESCRIPTION, PART_SUPPLIER, PART_RETURNABLE, PART_MOTIONLESS, PART_RED_TYPE, PART_SCREEN_TYPE, PART_CREDIT_PERCENTAGE, PART_BRAND, UCI_NEEDED, BAC_CODE, TPG_IPG_FLG, PART_READY, PART_STATUS, part_create_date,
CAST(COUNTRY_CODE AS VARCHAR(1000)),Rk_Num from Recursive_Test_Par WHERE Rk_Num=1
UNION ALL
SELECT a1.PART_COMM_GROUP, a1.PART_COMM_NAME, a1.PART_NUMBER, a1.PART_DESCRIPTION, a1.PART_LONG_DESCRIPTION, a1.PART_SUPPLIER, a1.PART_RETURNABLE, a1.PART_MOTIONLESS, a1.PART_RED_TYPE, a1.PART_SCREEN_TYPE, a1.PART_CREDIT_PERCENTAGE, a1.PART_BRAND, a1.UCI_NEEDED, a1.BAC_CODE, a1.TPG_IPG_FLG, a1.PART_READY, a1.PART_STATUS, a1.part_create_date,
CAST(a1.COUNTRY_CODE||'#'||b1.COUNTRY_CODE AS VARCHAR(1000)),a1.R_Num+1
FROM City_Join a1,Recursive_Test_Par b1
WHERE a1.PART_RED_TYPE=b1.PART_RED_TYPE and a1.R_Num=b1.Rk_Num-1
and a1.PART_NUMBER=b1.PART_NUMBER
)