Animated Rainbow Nyan Cat

์ผ๊ณ„, ์›”๊ณ„ ๋งค์ž…๋งค์ถœ

์˜ˆ์‹œ

์ด์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚˜๋„๋ก ์ž‘์„ฑํ•  ๊ฒƒ์ด๋‹ค.

์‚ฌ์šฉ ํ…Œ์ด๋ธ”

a - ์ƒํ’ˆ๋งˆ์Šคํ„ฐ

d - ๋งค์ถœ

c0 - ๋งค์ž…์ „ํ‘œ ํ—ค๋”

c1 - ๋งค์ž…์ „ํ‘œ ๋ฐ”๋””

์ฟผ๋ฆฌ

/*๋งค์ถœ ์ผ๊ณ„*/
/*s_amt:๋งค์ถœ์ด์•ก, v_amt:๋ถ€๊ฐ€์„ธ, qty:์ˆ˜๋Ÿ‰, type:๊ฑฐ๋ž˜ํ˜•ํƒœ*/
SELECT SUM(d.s_amt) - SUM(d.v_amt * d.qty)  AS "๋งค์ถœ์•ก",  
       SUM(d.v_amt * d.qty)                 AS "๋ถ€๊ฐ€์„ธ",
       SUM(d.s_amt)                         AS "๋งค์ถœ์ด์•ก",
       SUM(d.s_amt) - SUM(d.w_amt)          AS "๋งค์ถœ์ด์ต",
       SUM(DECODE(a.type, '0', d.s_amt, 0)) AS "์ง์˜๋งค์ถœ", /*0์ด๋ฉด ์ง์˜๋งค์ถœ*/
       SUM(DECODE(a.type, '2', d.s_amt, 0)) AS "์ˆ˜์ˆ˜๋ฃŒ๋งค์ถœ", /*2์ด๋ฉด ์ˆ˜์ˆ˜๋ฃŒ๋งค์ถœ*/
       SUM(DECODE(a.type, '1', d.s_amt, 0)) AS "์ž„๋Œ€๋งค์ถœ" /*1์ด๋ฉด ์ž„๋Œ€๋งค์ถœ*/
  FROM a /*์ ์ƒํ’ˆ๋งˆ์Šคํ„ฐ*/
     , d /*๋งค์ถœ*/
 WHERE a.mall_code = d.mall_code /*๋งค์žฅ*/
   AND a.sto_code  = d.sto_code /*์ ํฌ*/
   AND a.sku_code  = d.sku_code /*์ƒํ’ˆ*/
   AND a.mall_code = '1234'
   AND a.sto_code  = '1'
   AND d.date      = '20240827' /*๋‚ ์งœ*/

 UNION ALL
/*๋งค์ถœ ์›”๊ณ„*/
SELECT SUM(d.s_amt) - SUM(d.v_amt * d.qty)  AS "๋งค์ถœ์•ก", 
       SUM(d.v_amt * d.qty)                 AS "๋ถ€๊ฐ€์„ธ",
       SUM(d.s_amt)                         AS "๋งค์ถœ์ด์•ก",
       SUM(d.s_amt) - SUM(d.w_amt)          AS "๋งค์ถœ์ด์ต",
       SUM(DECODE(a.type, '0', d.s_amt, 0)) AS "์ง์˜๋งค์ถœ", /*0์ด๋ฉด ์ง์˜๋งค์ถœ*/
       SUM(DECODE(a.type, '2', d.s_amt, 0)) AS "์ˆ˜์ˆ˜๋ฃŒ๋งค์ถœ", /*2์ด๋ฉด ์ˆ˜์ˆ˜๋ฃŒ๋งค์ถœ*/
       SUM(DECODE(a.type, '1', d.s_amt, 0)) AS "์ž„๋Œ€๋งค์ถœ" /*1์ด๋ฉด ์ž„๋Œ€๋งค์ถœ*/
  FROM a /*์ ์ƒํ’ˆ๋งˆ์Šคํ„ฐ*/
     , d /*๋งค์ถœ*/
 WHERE a.mall_code             = d.mall_code
   AND a.sto_code              = d.sto_code
   AND a.sku_code              = d.sku_code
   AND a.mall_code             = '1234'
   AND a.sto_code              = '1'
   AND SUBSTRING(d.date, 1, 6) = '202408'

 UNION ALL
/*๋งค์ž… ์ผ๊ณ„*/
/*flag:๋งค์ž…๊ตฌ๋ถ„(0:์ •์ƒ, 1:๋ฐ˜ํ’ˆ), wprc:์›๊ฐ€๋‹จ๊ฐ€, vat:๋ถ€๊ฐ€์„ธ๋‹จ๊ฐ€, p_wamt:์›๊ฐ€*/
SELECT SUM(DECODE(c0.flag, '0', 1, '1', -1) * (c1.wprc * c1.qty)) AS "๋งค์ž…์•ก",
       SUM(DECODE(c0.flag, '0', 1, '1', -1) * (c1.vat * c1.qty))  AS "๋ถ€๊ฐ€์„ธ",
       SUM(DECODE(c0.flag, '0', 1, '1', -1) * c1.p_wamt)          AS "๋งค์ž…์ด์•ก",
       NULL      /*์ด๋Ÿฐ์‹์œผ๋กœ NULL ASํ•ด์ค˜๋„ ๋˜๋Š”๋ฐ*/              AS "๋งค์ถœ์ด์ต",
       NULL      /*์ด๋ ‡๊ฒŒ NULL ์ง์˜๋งค์ถœ ์ด๋Ÿฐ์‹์œผ๋กœ ํ•ด์ค˜๋„ ๋จ.*/      "์ง์˜๋งค์ถœ",
       NULL                                                       AS "์ˆ˜์ˆ˜๋ฃŒ๋งค์ถœ",
       NULL                                                       AS "์ž„๋Œ€๋งค์ถœ" 
  FROM c0 /*๋งค์ž…์ „ํ‘œ ํ—ค๋”*/
     , c1 /*๋งค์ž…์ „ํ‘œ ๋ฐ”๋””*/
 WHERE c0.mall_code = c1.mall_code
   AND c0.date      = c1.date
   AND c0.sto_code  = c1.sto_code
   AND c0.slip_num  = c1.slip_num
   AND c1.mall_code = '1234'
   AND c1.sto_code  = '1'
   AND c1.date      = '20240827'

 UNION ALL
/*๋งค์ž… ์›”๊ณ„*/
SELECT SUM(DECODE(c0.flag, '0', 1, '1', -1) * ROUND(c1.wprc * c1.qty)) AS "๋งค์ž…์•ก",
       SUM(DECODE(c0.flag, '0', 1, '1', -1) * (c1.vat * c1.qty))       AS "๋ถ€๊ฐ€์„ธ",
       SUM(DECODE(c0.flag, '0', 1, '1', -1) * c1.p_wamt)               AS "๋งค์ž…์ด์•ก",
       NULL                                                            AS "๋งค์ถœ์ด์ต", 
       NULL                                                            AS "์ง์˜๋งค์ถœ",
       NULL                                                            AS "์ˆ˜์ˆ˜๋ฃŒ๋งค์ถœ",
       NULL                                                            AS "์ž„๋Œ€๋งค์ถœ" 
  FROM c0 /*๋งค์ž…์ „ํ‘œ ํ—ค๋”*/
     , c1 /*๋งค์ž…์ „ํ‘œ ๋ฐ”๋””*/
 WHERE c0.mall_code             = c1.mall_code
   AND c0.date                  = c1.date
   AND c0.sto_code              = c1.sto_code
   AND c0.slip_num              = c1.slip_num
   AND c1.mall_code             = '1234'
   AND c1.sto_code              = '1'
   AND SUBSTRING(c1.date, 1, 6) = '202408';

๊ฒฐ๊ณผ

์ด์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ฌ๋‹ค.

์ผ๋ณ„/์›”๋ณ„ ๋งค์ž… ๋Œ€๋น„ ์ด์ต๋ฅ 

์œ„์˜ ์ฟผ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด ์ผ๋ณ„, ์›”๋ณ„ ๋งค์ž… ๋Œ€๋น„ ์ด์ต๋ฅ ์„ ๋‚˜ํƒ€๋‚ด๋ณด๋„๋ก ํ•˜์ž.

์ฟผ๋ฆฌ

SELECT ROUND(((A.sales - B.purchase) / A.sales) * 100, 2) AS "์ผ๋ณ„ ์›”๋ณ„ ๋งค์ž… ๋Œ€๋น„ ์ด์ต์œจ", /*์†Œ์ˆ˜์ ์•„๋ž˜ ๋‘์ž๋ฆฌ์ˆ˜๊นŒ์ง€*/
       A.sales - B.purchase                               AS "์ด์ต์•ก"
  FROM (SELECT SUM(d.s_amt) AS sales /*์ด ๋งค์ถœ*/
          FROM a /*์ ์ƒํ’ˆ๋งˆ์Šคํ„ฐ*/
             , d /*๋งค์ถœ*/
         WHERE a.mall_code = d.mall_code /*๋งค์žฅ*/
           AND a.sto_code  = d.sto_code /*์ ํฌ*/
           AND a.sku_code  = d.sku_code /*์ƒํ’ˆ*/
           AND a.mall_code = '1234'
           AND a.sto_code  = '1'
           AND d.date      = '20240827' /*๋‚ ์งœ*/) A,
       /*flag:๋งค์ž…๊ตฌ๋ถ„(0:์ •์ƒ, 1:๋ฐ˜ํ’ˆ), p_wamt:์›๊ฐ€*/
       (SELECT SUM(DECODE(c0.flag, '0', 1, '1', -1) * c1.p_wamt) AS purchase /*์ด ๋งค์ž…*/
          FROM c0 /*๋งค์ž…์ „ํ‘œ ํ—ค๋”*/
             , c1 /*๋งค์ž…์ „ํ‘œ ๋ฐ”๋””*/
         WHERE c0.mall_code = c1.mall_code /*๋งค์žฅ*/
           AND c0.date      = c1.date /*๋‚ ์งœ*/
           AND c0.sto_code  = c1.sto_code /*์ ํฌ*/
           AND c0.slip_num  = c1.slip_num /*์ „ํ‘œ๋ฒˆํ˜ธ*/
           AND c1.mall_code = '1234'
           AND c1.sto_code  = '1'
           AND c1.date      = '20240827' /*๋‚ ์งœ*/) B

 UNION ALL

SELECT ROUND(((A.sales - B.purchase) / A.sales) * 100, 2) AS "์ผ๋ณ„ ์›”๋ณ„ ๋งค์ž… ๋Œ€๋น„ ์ด์ต์œจ",/*์†Œ์ˆ˜์ ์•„๋ž˜ ๋‘์ž๋ฆฌ์ˆ˜๊นŒ์ง€*/
       A.sales - B.purchase                               AS "์ด์ต์•ก"
  FROM (SELECT SUM(d.s_amt) AS sales /*์ด ๋งค์ถœ*/
          FROM a /*์ ์ƒํ’ˆ๋งˆ์Šคํ„ฐ*/
             , d /*๋งค์ถœ*/
         WHERE a.mall_code             = d.mall_code /*๋งค์žฅ*/
           AND a.sto_code              = d.sto_code /*์ ํฌ*/
           AND a.sku_code              = d.sku_code /*์ƒํ’ˆ*/
           AND a.mall_code             = '1234'
           AND a.sto_code              = '1'
           AND SUBSTRING(d.date, 1, 6) = '202408') A, /*๋…„์›”*/
       /*flag:๋งค์ž…๊ตฌ๋ถ„(0:์ •์ƒ, 1:๋ฐ˜ํ’ˆ), p_wamt:์›๊ฐ€*/
       (SELECT SUM(DECODE(c0.flag, '0', 1, '1', -1) * c1.p_wamt) AS purchase /*์ด ๋งค์ž…*/
          FROM c0 /*๋งค์ž…์ „ํ‘œ ํ—ค๋”*/
             , c1 /*๋งค์ž…์ „ํ‘œ ๋ฐ”๋””*/
         WHERE c0.mall_code             = c1.mall_code /*๋งค์žฅ*/
           AND c0.date                  = c1.date /*๋‚ ์งœ*/
           AND c0.sto_code              = c1.sto_code /*์ ํฌ*/
           AND c0.slip_num              = c1.slip_num /*์ „ํ‘œ๋ฒˆํ˜ธ*/
           AND c1.mall_code             = '1234'
           AND c1.sto_code              = '1'
           AND SUBSTRING(c1.date, 1, 6) = '202408' /*๋…„์›”*/) B

๊ฒฐ๊ณผ

์œ„์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚˜๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. (์œ„๊ฐ€ ์ผ๋ณ„, ์•„๋ž˜๊ฐ€ ์›”๋ณ„)