어디서 부터 설명을 드려야 할지 모르겠습니다.
먼제 bm이란 테이블이 이 있습니다
이테이블에는 바코드 수량 날자 입고인지 출고인지 선택하는 필드가 있습니다
e_barcode,e_count,e_date,e_sort(매입은 0 매출은1) 이런형식 입니다
일단 재고를 구하는 쿼리는
select ifnull(sum(case when e_sort='0' then e_count end),'0')-ifnull(sum(case when e_sort='1' then e_count end),'0') as count from bm group by e_barcode 이렇게 해서 재고 수량을 구합니다.
그리고 마지막 거래 날자를 구할려
select e_barcode,max(e_date) as e_date from smgolf1expenses where e_sort = '1' group by e_barcode
마지막 판매 날자를 구해야 하기때문에 판매일자중 가장 최근값을 가져 옵니다.
제가 원하는값은 토탈 몇개가 3개월동안 팔리지 않았는지를 알고 싶습니다.
php로 구현 하자면
1.최근 3개월 동안 거래되지 않는 바코드를 가져온다
2.가져온 바코드를 와일문으로 돌려 재고 수량을 가져온다
3.php로 총 갯수를 더해서 출력 시킨다
이렇게 구현이 가능하지만
이럴경우 바코드가 1000 개 이상일 경우 1000번의 쿼리가 날아가는 문제점 (이건 별문제 없을것 같지만,,)
이쿼리를 union 으로 총 12개 지점의 값을 뿌려줘야 하기때문에
가능하다면 쿼리 한번으로 해결하고 싶습니다.
환경은 mysql version: 5.0.24 입니다.
버젼 업글도 해야하는데 프로그램 손 놓은지 2년이 넘어서 사실 아무것도 모르겠습니다.
여러분들의 좋은 의견과 좋은 해결책을 간절히 바라고 있습니다.
날씨가 갑자기 추워집니다 다들 감기 조심하세요
|