재고 집계를 내는 쿼리문을 하루에 자동으로 한번만 해야 하는데..
시스템상으로 할수 있는 여건이 안되어서.. 쿼리문으로 해결할려고 합니다.
다음은 집계 내는 쿼리문인데요..
INSERT INTO stock (p_code, f_period, found, ipgo, sell, m_ipgo, m_stock,mb_register_date)
SELECT
Z.ITEM_CODE,
SUBSTRING( Z.YYMMDD, 1,10 ) AS f_period,
SUM( Z.B_COUNT ) AS found, // 기초
SUM( Z.I_COUNT ) AS ipgo, // 입고
SUM( Z.O_COUNT ) AS sell, // 판매
SUM( Z.I_COUNT ) - SUM( Z.O_COUNT ) AS m_ipgo, // 총입고
SUM( Z.B_COUNT ) + SUM( Z.I_COUNT ) - SUM( Z.O_COUNT ) AS m_stock , // 총재고
now()
FROM (
SELECT p_code AS ITEM_CODE,
f_period AS YYMMDD,
0 AS B_COUNT,
SUM( p_num ) AS I_COUNT,
0 AS O_COUNT
FROM stock_ipgo_2
where f_period = CURDATE()
GROUP BY f_period, p_code
UNION ALL
SELECT p_code AS ITEM_CODE,
f_period AS YYMMDD,
0 AS B_COUNT,
0 AS I_COUNT,
SUM( p_num ) AS O_COUNT
FROM stock_sell_2
where f_period = CURDATE()
GROUP BY f_period, p_code
)Z
GROUP BY SUBSTRING( Z.YYMMDD, 1,10 ) , Z.ITEM_CODE
이 쿼리문을 하루에 한번만 돌릴려고 하니깐. 어떤 고수분이
오라클에서 쓰이는 구문을 주셨습니다. 그래서
mysql 로 바꾸어야 하는데 어찔 바꿀지 난감하네요..
INSERT INTO stock_ending
(start_day,end_day,mb_register_date)
VALUES
('00','11',CURDATE())
where 1=1
and (
select
count(*)
from
mb_register_date
where 1=1
and mb_register_date = '2008-10-17'
) < 1
mysql 에서는
merge into table명
using table명
on 조건문
when matched then
update set c1=v1 ..cn=vn
when not matched then
insert(c1,c2....cn ) values (v1,v2,...vn );
mysql 구문이 있다고 하는데 맞나요?
짐 바꾸고 있는데.. 어렵네요.. -_-