CREATE TABLE dist_details ( dist_id NUMBER, dist_num NUMBER, sales_qty NUMBER ); INSERT INTO dist_details VALUES (11111, 112, 40); INSERT INTO dist_details VALUES (11111, 112, 30); INSERT INTO dist_details VALUES (22222, 113, 40); INSERT INTO dist_details VALUES (22222, 113, 5); INSERT INTO dist_details VALUES (22222, 113, 5); CREATE TABLE prod_details ( product_id NUMBER, prod_num NUMBER, stock_qty NUMBER ); INSERT INTO prod_details VALUES (11111, 112, 50); INSERT INTO prod_details VALUES (22222, 113, 50); SELECT * FROM dist_details; DECLARE CURSOR c1 IS SELECT product_id, prod_num, stock_qty FROM prod_details; CURSOR c2( i_product_id NUMBER) IS SELECT dist_id, dist_num, sales_qty FROM dist_details WHERE dist_id = i_product_id; i_product_id NUMBER; v_product_id NUMBER; v_prod_num NUMBER; v_stock_qty NUMBER; v_dist_id NUMBER; v_dist_num NUMBER; v_sales_qty NUMBER; v_max_sales_qty NUMBER; BEGIN OPEN c1; LOOP FETCH c1 INTO v_product_id, v_prod_num, v_stock_qty; EXIT WHEN c1%NOTFOUND; OPEN c2(i_product_id); LOOP FETCH c2 INTO v_dist_id, v_dist_num, v_sales_qty; EXIT WHEN c2%NOTFOUND; SELECT SUM(sales_qty) INTO v_max_sales_qty FROM dist_details WHERE dist_id = v_dist_id GROUP BY dist_id; dbms_output.Put_line('I tried to acquire the results listed below.'); IF ( v_stock_qty >= v_max_sales_qty ) THEN dbms_output.Put_line('I tried to acquire the results listed below.'); /* V_dist_id V_dist_num V_sales_qty v_optional 22222 113 40 0 22222 113 5 0 22222 113 4 1*/ ELSIF ( v_stock_qty < v_max_sales_qty ) THEN dbms_output.Put_line('I tried to acquire the results listed below.'); /* V_dist_id V_dist_num V_sales_qty v_optional 11111 112 40 0 11111 112 10 0*/ END IF; END LOOP; CLOSE c2; END LOOP; CLOSE c1; END;