Advertisement
Evra70

check selisih

Nov 22nd, 2021
970
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. WITH reserved AS(
  2.     SELECT product_id,qty qty_reserved
  3.     FROM in_product_balance_stock_reserved A
  4.     WHERE tenant_id = 10
  5.         AND qty <> 0
  6.     AND A.product_status = 'GOOD'
  7. ),check_stock AS(
  8.      SELECT product_id,qty ,product_balance_id,product_balance_stock_id
  9.     FROM in_product_balance_stock A
  10.     WHERE A.tenant_id = 10
  11.         AND A.product_status = 'GOOD'
  12.     AND EXISTS (
  13.         SELECT 1
  14.         FROM reserved B
  15.         where A.product_id = B.product_id
  16.     )
  17. ), stock AS(
  18.     SELECT product_id,SUM(qty) qty_stock
  19.     FROM check_stock A
  20.     GROUP BY product_id
  21. ),hasil AS(
  22.     SELECT A.product_id,A.qty_reserved,B.qty_stock,
  23.         (A.qty_reserved - B.qty_stock ) AS selisih
  24.     FROM reserved A
  25.         INNER JOIN stock B ON A.product_id = B.product_id
  26.     WHERE A.qty_reserved > B.qty_stock
  27. ) ,fil_min_qty AS(
  28.     SELECT A.product_id,MIN(A.qty) qty_min
  29.     FROM check_stock A
  30.         INNER JOIN hasil B ON A.product_id = B.product_id
  31.     GROUP BY A.product_id
  32. ),fil_min_balance AS(
  33.     SELECT MIN(A.product_balance_id) product_balance_id, A.product_id, B.qty_min
  34.     FROM check_stock A
  35.     INNER JOIN fil_min_qty B ON A.product_id = B.product_id AND A.qty = B.qty_min
  36.     GROUP BY A.product_id,B.qty_min
  37. ),fil_min_balance_stock AS(
  38.     SELECT MIN(A.product_balance_stock_id) product_balance_stock_id, A.product_id
  39.     FROM check_stock A
  40.     INNER JOIN fil_min_balance B ON A.product_id = B.product_id
  41.         AND A.product_balance_id = B.product_balance_id
  42.         AND A.qty = B.qty_min
  43.     GROUP BY A.product_id
  44. )
  45. SELECT B.product_id,f_get_product_code(B.product_id) AS code,
  46.         f_get_product_name(B.product_id) AS NAME,
  47.         B.qty_reserved,B.qty_stock, B.selisih,C.product_balance_stock_id
  48.     FROM hasil B
  49.         INNER JOIN fil_min_balance_stock C ON B.product_id = C.product_id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement