Advertisement
aadddrr

Query Sales Dashboard

Nov 20th, 2017
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --getAuthorizedOuBuList
  2. SELECT A.ou_id, A.ou_code, A.ou_name
  3. FROM t_ou A
  4. INNER JOIN t_ou_type B ON A.ou_type_id = B.ou_type_id
  5. WHERE A.tenant_id = 10
  6.     AND B.flg_bu = 'Y'
  7.     AND f_authorize_user_role_policy_ou(10, 15, 65, A.ou_id) = 1
  8. ORDER BY B.flg_bu DESC, B.flg_sub_bu ASC, B.flg_branch ASC, A.ou_code ASC
  9.  
  10. --getAuthorizedSalesmanList
  11. SELECT A.partner_id, A.tenant_id, A.partner_code, A.partner_name, A.active, A.version
  12. FROM m_partner A
  13. INNER JOIN m_partner_type B ON A.partner_id = B.partner_id
  14. INNER JOIN m_type_partner C ON B.type_partner_id = C.type_partner_id
  15. INNER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  16. WHERE C.type_partner_code='SLS'
  17.     AND A.tenant_id = 10
  18.     AND B.group_partner = 'E'
  19.     AND D.ou_id = 10
  20.     AND f_authorize_user_role_policy_salesman(10, 15, 65, A.partner_id) = 1
  21. ORDER BY a.partner_name ASC
  22.  
  23. --getCurrentSalesAmountByMonth
  24. SELECT A.ou_id, B.salesman_id, SUBSTRING(A.ref_doc_date, 1, 6) AS year_month,
  25.     SUM(
  26.     CASE WHEN A.curr_code <> 'IDR' THEN
  27.         CASE WHEN A.ref_doc_type_id = 311 THEN
  28.             A.item_amount * f_commercial_rate(10, A.ref_doc_date, A.curr_code, 'IDR')
  29.         ELSE
  30.             -1 * A.item_amount * f_commercial_rate(10, A.ref_doc_date, A.curr_code, 'IDR')
  31.         END
  32.     ELSE
  33.         CASE WHEN A.ref_doc_type_id = 311 THEN
  34.             A.item_amount
  35.         ELSE
  36.             -1 * A.item_amount
  37.         END
  38.     END
  39.     ) AS sales_amount
  40. FROM sl_so_balance_invoice A
  41. INNER JOIN sl_so B ON A.so_id = B.so_id
  42. WHERE A.ou_id = 10
  43.     AND B.salesman_id = 2616
  44.     AND SUBSTRING(A.ref_doc_date, 1, 6) = '201609'
  45. GROUP BY A.ou_id, B.salesman_id, SUBSTRING(A.ref_doc_date, 1, 6)
  46.  
  47. --getCurrentSalesPercentageByMonth
  48. WITH tt_salesman_sales AS (
  49.     SELECT A.ou_id, B.salesman_id, SUBSTRING(A.ref_doc_date, 1, 6) AS year_month,
  50.         SUM(
  51.             CASE WHEN A.curr_code <> 'IDR' THEN
  52.                 CASE WHEN A.ref_doc_type_id = 311 THEN
  53.                     A.item_amount * f_commercial_rate(10, A.ref_doc_date, A.curr_code, 'IDR')
  54.                 ELSE
  55.                     -1 * A.item_amount * f_commercial_rate(10, A.ref_doc_date, A.curr_code, 'IDR')
  56.                 END
  57.             ELSE
  58.                 CASE WHEN A.ref_doc_type_id = 311 THEN
  59.                     A.item_amount
  60.                 ELSE
  61.                     -1 * A.item_amount
  62.                 END
  63.             END
  64.         ) AS sales_amount
  65.     FROM sl_so_balance_invoice A
  66.     INNER JOIN sl_so B ON A.so_id = B.so_id
  67.     WHERE A.ou_id = 10
  68.         AND B.salesman_id = 2616
  69.         AND SUBSTRING(A.ref_doc_date, 1, 6) = '201609'
  70.     GROUP BY A.ou_id, B.salesman_id, SUBSTRING(A.ref_doc_date, 1, 6)
  71.  
  72. )
  73. SELECT B.ou_id, B.salesman_id, B.year_month, (B.sales_amount / A.target_amount) * 100
  74. FROM m_target_salesman A
  75. INNER JOIN tt_salesman_sales B ON A.ou_id = B.ou_id AND A.salesman_id = B.salesman_id AND A.year_month = B.year_month
  76. WHERE A.ou_id = 10
  77.     AND A.salesman_id = 2616
  78.     AND A.year_month = '201609'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement