Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WITH reserved AS(
- SELECT product_id,qty qty_reserved
- FROM in_product_balance_stock_reserved A
- WHERE tenant_id = 10
- AND qty <> 0
- AND A.product_status = 'GOOD'
- ),check_stock AS(
- SELECT product_id,qty ,product_balance_id,product_balance_stock_id
- FROM in_product_balance_stock A
- WHERE A.tenant_id = 10
- AND A.product_status = 'GOOD'
- AND EXISTS (
- SELECT 1
- FROM reserved B
- where A.product_id = B.product_id
- )
- ), stock AS(
- SELECT product_id,SUM(qty) qty_stock
- FROM check_stock A
- GROUP BY product_id
- ),hasil AS(
- SELECT A.product_id,A.qty_reserved,B.qty_stock,
- (A.qty_reserved - B.qty_stock ) AS selisih
- FROM reserved A
- INNER JOIN stock B ON A.product_id = B.product_id
- WHERE A.qty_reserved > B.qty_stock
- ) ,fil_min_qty AS(
- SELECT A.product_id,MIN(A.qty) qty_min
- FROM check_stock A
- INNER JOIN hasil B ON A.product_id = B.product_id
- GROUP BY A.product_id
- ),fil_min_balance AS(
- SELECT MIN(A.product_balance_id) product_balance_id, A.product_id, B.qty_min
- FROM check_stock A
- INNER JOIN fil_min_qty B ON A.product_id = B.product_id AND A.qty = B.qty_min
- GROUP BY A.product_id,B.qty_min
- ),fil_min_balance_stock AS(
- SELECT MIN(A.product_balance_stock_id) product_balance_stock_id, A.product_id
- FROM check_stock A
- INNER JOIN fil_min_balance B ON A.product_id = B.product_id
- AND A.product_balance_id = B.product_balance_id
- AND A.qty = B.qty_min
- GROUP BY A.product_id
- )
- SELECT B.product_id,f_get_product_code(B.product_id) AS code,
- f_get_product_name(B.product_id) AS NAME,
- B.qty_reserved,B.qty_stock, B.selisih,C.product_balance_stock_id
- FROM hasil B
- INNER JOIN fil_min_balance_stock C ON B.product_id = C.product_id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement