Write an SQL statement given the following requirements.
For every customer that had a delivery to Hyderabad, provide a result set of the customer orders that were delivered to Bangalore.
Output:
Script:
WITH CUSTOMER_ORDER AS (
SELECT 1001 CUSTOMER_ID,'Ord1234' ORDERID,'HYDERABAD' DELIVERY_CITY,100 AMOUNT FROM DUAL
UNION
SELECT 1001 CUSTOMER_ID,'Ord1235' ORDERID,'BANGALORE' DELIVERY_CITY,123 AMOUNT FROM DUAL
UNION
SELECT 1001 CUSTOMER_ID,'Ord1236' ORDERID,'HYDERABAD' DELIVERY_CITY,341 AMOUNT FROM DUAL
UNION
SELECT 2001 CUSTOMER_ID,'Ord1237' ORDERID,'HYDERABAD' DELIVERY_CITY,890 AMOUNT FROM DUAL
UNION
SELECT 2001 CUSTOMER_ID,'Ord1238' ORDERID,'BANGALORE' DELIVERY_CITY,44 AMOUNT FROM DUAL
UNION
SELECT 3001 CUSTOMER_ID,'Ord1244' ORDERID,'HYDERABAD' DELIVERY_CITY,99 AMOUNT FROM DUAL
UNION
SELECT 4001 CUSTOMER_ID,'Ord1245' ORDERID,'HYDERABAD' DELIVERY_CITY,1020 AMOUNT FROM DUAL
UNION
SELECT 4001 CUSTOMER_ID,'Ord1246' ORDERID,'CHENNAI' DELIVERY_CITY,234 AMOUNT FROM DUAL
)
SELECT *
FROM customer_order o
WHERE
2 = (
SELECT count(distinct delivery_city)
FROM customer_order i
WHERE
delivery_city IN (
'HYDERABAD',
'BANGALORE'
)
AND o.customer_id = i.customer_id
)
ORDER BY
1;
No comments:
Post a Comment