我有两张表Product1
**和Product2
。
产品1
Product_id Product_rev Product_Name Product_description Product_owner Product_Group Product_TYPE
111 AAA CAR SPARE PARTS Nissan Nissan AUTOMOTIVE
222 BBB MODEL DESGIN NIFT NIFT FASHION
333 CCC REAR REAR MATERIAL KLM KLM GROUP MANUFACTURING
444 DDD FINACLE 2.0 BANKING PRODUCT IFLEX ORACLE SOFTWARE
555 EEE TYRE CEAR TYRES TATA MOTORS TATA AUTOMOTIVE
Product2_Transform
Product_id Product_rev Product_Name Product_description Product_owner Product_Group Product_TYPE
111 AAA CAR SPARE PARTS Ford Ford Nissan AUTOMOTIVE LTD
222 BBB MODEL DESGIN NIFTY NIFT FASHION
333 CCC REAR Head Left REAR MATERIAL KLM KLM GROUP MANUFACTURING
444 DDD FINACLE 2.5 BANKING PRODUCT Oracle IFLEX ORACLE SOFTWARE
555 EEE SEAT TYRE CEAR TYRES TATA BANCS TATA AUTOMOTIVE
我想要product1和product2中的差值并将其放在Product_post_validation表中。
Product_post_validation 表: -
Product_id Product_rev validation_column value_in_transform value_in_output
111 AAA Product_description SPARE PARTS SPARE PARTS Ford
111 AAA Product_owner Nissan Ford
111 AAA Product_TYPE AUTOMOTIVE AUTOMOTIVE LTD
333 CCC Product_Name REAR REAR Head Left
444 DDD Product_Name FINACLE 2.0 FINACLE 2.5
444 DDD Product_owner IFLEX Oracle IFLEX
555 EEE Product_Name TYRE SEAT TYRE
555 EEE Product_owner TATA MOTORS TATA BANCS
请帮助撰写查询...
答案 0 :(得分:0)
我会先取消,然后join
:
with p1c as (
select p1.product, p1.prev, v1.*
from product p1 cross join
(values ('Product_name', p1.Product_name),
('Product_description', p1.Product_description),
('Product_owner', p1.Product_owner),
('Product_Group', p1.Product_Group),
('Product_TYPE', p1. Product_TYPE)
) v1(validation_column, val)
),
p2c as (
select p2.product, p2.prev, v2.*
from product_transform p2 cross join
(values ('Product_name', p2.Product_name),
('Product_description', p2.Product_description),
('Product_owner', p2.Product_owner),
('Product_Group', p2.Product_Group),
('Product_TYPE', p2.Product_TYPE)
) v2(validation_column, val)
)
select p1c.product_id, p1c.rev, p1c.validation_column,
p1c.val, p2c.val
from p1c join
p2c
on p1c.product_id = p2c.product_id and p1c.rev = p2c.rev and
p1c.validation_column = p2c.validation_column and
p1c.val <> p2c.val;