수주관련되서 쿼리문을 수정하려고 하는데요. 로직을 어떻게 해야 할지... 난감해서요..
기존에 매출처와 납품처를 같이 해서 등록시에는 한 거래처에 수주량과 수주금액 똑같이 들어갔는데
납품처와 매출처를 분리하고 나서 . 수주량은 납품처로 금액은 매출처로 가는 현상입니다.
이럴경우 수주량이 매출처로 가게 하기 위해서는 어떤 로직이 적당할까요.
기존 union 되어 있는 상태입니다.(조회문) 초보자 질문입니다~ 도와주세요
Comment 7
-
악마곰
2015.06.15 09:55
-
잘하고싶다하아
2015.06.15 10:05
select 시 어떻게 참조를 해야할까요? 제가 잘 몰라서요.. 답변 너무 감사드립니다.
-
악마곰
2015.06.15 10:21
납품처와 매출처를 분리 했다고 하셨는데 무슨 말씀 이신지...
그리고 세부적으로 답변을 드리려면 관련된 테이블 구조 등이 필요 합니다...
-
잘하고싶다하아
2015.06.15 10:40
select a.cust_cd, c.cust_nm, a.itm_id, d.itm_cd,d.itm_nm,
so_qty = sum(isnull(a.so_qty, 0)), so_amt = sum(isnull(a.so_amt, 0)),
out_qty = sum(isnull(a.out_qty, 0)), out_amt = sum(a.out_amt),
out_jan = case when sum(isnull(a.so_qty, 0)) < 1 then 0
else sum(( isnull(a.so_qty, 0) - isnull(a.out_qty, 0))) end,
so_up = max(a.so_up),
jan_amt = sum(isnull(a.so_amt, 0)) - sum(a.out_amt)
from
(select b.cust_cd, a.itm_id,
so_qty = sum(a.so_qty), so_up = max(a.so_up), amt_up = max(a.amt_up), so_amt = sum(a.so_amt), out_qty = 0,
out_amt = 0, vat_amt = 0from sdb150 a
join sdb100 b on a.so_no=b.so_no
where b.so_dt >= @so_f_dt and b.so_dt <= @so_t_dt
and b.so_bs = @so_bs
and b.so_fac = @so_fac
-- and ( isnull(a.so_qty, 0) - isnull(a.out_qty, 0) ) <> 0
andif b.cust_cd = @cust_cd endif
group by b.cust_cd, a.itm_idunion
select f.cust_cd, f.itm_id, so_qty = 0, so_up = 0, amt_up = 0, so_amt = 0,
out_qty = sum(isnull((case when c.stock_yn = 1 then 0 else f.out_qty end), 0)),
out_amt = sum(isnull(f.out_amt,0)), --sum(isnull(f.out_qty, 0) * isnull(f.out_up, 0)),
vat_amt = case when max(e.tax_bc) in ('FA630210','FA630230') then 0 else sum(floor(isnull((f.out_qty * f.out_up),0) * 0.1)) end
from leb100 f
left join bcc300 g on f.fac_cd = g.fac_cd and g.bs_cd = '01'
left join bcv100 e on f.cust_cd = e.cust_cd
left join dma100 c on f.itm_id = c.itm_id
where f.out_dt >= @so_f_dt and f.out_dt <= @so_t_dt
and (f.out_bc = 'LE200730'or (f.out_bc = 'le200100' and f.ent_bc ='LE910300')) --출하이동 / 수출-출하
andif f.cust_cd = @cust_cd endif
group by f.cust_cd, f.itm_id
) a
left join bcv100 c on a.cust_cd = c.cust_cd
left join dma100 d on a.itm_id = d.itm_idgroup by a.cust_cd,c.cust_nm, a.itm_id, d.itm_cd,d.itm_nm
having 1 = case when @rem_yn = '0' then 1
when @rem_yn = '1' and sum(( isnull(a.so_qty, 0) - isnull(a.out_qty, 0))) > 0 then 1
else 0 end
order by a.cust_cd, a.itm_id기존에 납품처 cust_cd, 매출처 cust_cd2 가 같은 선택이었습니다. 회계상으로.
현실적으로 납품을 다른곳에 하고 돈은 매출처에 받는곳이 많아 이번에 변경했는데요..
납품처엔 수주량과 수주금액이 나오고... 매출처엔 수주량과 수주금액이 안나오고 수주금액만 +표현이 되어서..
이걸 납품처 수주량과 수주금액을 매출처쪽에 나오게 하려고 합니다.
답변 다시한번 또 감사드립니다.
cust_cd 거래처코드
cust_nm 거래처명
itm_id 품목ID
itm_cd 품목코드
itm_nm 품목명
so_qty 수주량
so_amt 수주금액
out_qty 출하량
out_amt 출하금액
so_up 단가
out_jan 미출하잔량
jan_amt 미출고금액 -
악마곰
2015.06.15 10:56
쿼리에서 최소한 주가 되는 sdb150, leb100 테이블이 무슨 테이블인지...
제가 예상되기는 sdb150이 수주쪽인거 같고,,, leb100 이 출하쪽 테이블 같은데요...
이 두테이블에 수주번호가 있는지... 그리고 유니크한 key 인지 확인 설계상 문제가 없는지 먼저 확인 하고
쿼리에서 업체 코드가 아니라 수주번호로 조인 하여 select 하면 문제 없겠네요...
-
잘하고싶다하아
2015.06.15 11:57
감사합니다 너무.. 이렇게 답글을 주시고..
-
잘하고싶다하아
2015.06.15 12:06
150이 수주가 맞습니다. 유니크한 KEY 수주번호는 있는데 LEB100 출고쪽이라.. 수주번호가 아닌 출고번호가 유니크입니다.
이럴경우 어떻게 조인을 걸수 있을까요. 제가 잘 몰라 ...너무 감사합니다.
마지막글 보고 최대한 검토를 다시 해볼께요.
수주 등록 시 별도의 수주번호를 key 로 가지고 있을 거 같은데요...
수주 번호를 가지고 수주data 와 매출 data(매출 등록 시에도 당연히 수주를 참조 해야겠네요)를 select 하면 문제 없겠네요..