델파이로 프로그램 하다가 막혀서 질문을 올림니다.
매출 카드는 거래처의 매출과 미수금을 기록하는 장부 입니다.
매출 카드에 들어갈 필드들은 다음과 같습니다.
날짜, 구분, 거래처 명, 제품 이름, 수량, 단가, 매출 금액, 입금액, 미수금, 비고
그런데 이 매출 카드에서 사용한 db 는 매출.db, 반품.db 두가지 입니다.
매출.db 의 필드는
날짜, 구분, 거래처 명, 제품 이름, 수량, 단가, 매출 금액, 입금액, 비고
반품.db 의 필드는
날짜, 구분, 거래처 명, 반품 금액, 찬조 금액, 비고
입니다.
미수금 계정 계산은
미수금 = 매출 금액 - 입금액- 반품 금액 - 찬조 금액
입니다.
그런데 매출 카드에 들어갈 미수금 필드가 매출, 반품 db 에는 없는 필드인데
새로운 필드를 생성해야 하는 것인가요 ? 쿼리를 사용해야 하는 것인가요 ?
어떻게 해결하는 것이 좋은 방법일까요 ?
>
> 델파이로 프로그램 하다가 막혀서 질문을 올림니다.
> 매출 카드는 거래처의 매출과 미수금을 기록하는 장부 입니다.
>
> 매출 카드에 들어갈 필드들은 다음과 같습니다.
> 날짜, 구분, 거래처 명, 제품 이름, 수량, 단가, 매출 금액, 입금액, 미수금, 비고
>
> 그런데 이 매출 카드에서 사용한 db 는 매출.db, 반품.db 두가지 입니다.
>
> 매출.db 의 필드는
> 날짜, 구분, 거래처 명, 제품 이름, 수량, 단가, 매출 금액, 입금액, 비고
>
> 반품.db 의 필드는
> 날짜, 구분, 거래처 명, 반품 금액, 찬조 금액, 비고
> 입니다.
>
> 미수금 계정 계산은
> 미수금 = 매출 금액 - 입금액- 반품 금액 - 찬조 금액
> 입니다.
>
> 그런데 매출 카드에 들어갈 미수금 필드가 매출, 반품 db 에는 없는 필드인데
> 새로운 필드를 생성해야 하는 것인가요 ? 쿼리를 사용해야 하는 것인가요 ?
>
> 어떻게 해결하는 것이 좋은 방법일까요 ?
>
>
제 생각에는... 계산필드를 만들어보시는건 어떨까하는 생각이듭니다.
위 필드명을 보면 매출DB에는 제품명이 있는데 반품DB에는 제품명이 없는것 같습니다. 그러면 반품관리는 어떤 거래처에 어떤 제품이 나가든지 관계없이 그저 반품된 금액만 기입하는것 같습니다.
그러니까 반품관리는 제품은 무시하고 거래처별로 하는것인가요? 아니면 날짜별, 거래처별로 하시는건가요? 날짜별 거래처별로 한다고 가정하고 말씀드리겠습니다.
음.. 지금 테스트를 해볼 여건이 안되어서 기억이나는데로 대강적습니다.확실치는 않습니다.
query를 사용하여 SQL문 작성중에
두개의 DB를 동시에 연결하여
select m.날짜, m.거래처필드명,sum(m.매출금액), sum(m.입금액), sum(b.반품금액), sum(b.찬조금)
from 매출db as m, 반품db as b
where m.거래처필드명=b.거래처필드명
group by m.날짜, m.거래처필드명
확실치는 않지와 위와같이 하면 각날짜별,거래처별로 매출총금액과 입금총금액, 반품총금액, 찬조총금액이 나옵니다. 그리고 나온값으로 계산을 하면 될것 같습니다.
물론 위 방식대로 하면 전체거래처에 대한 내용이 모두 나오거든요. 만약에 하나의 해당 거래처의 값을 얻고자한다면 where 조건문을
where m.거래처명='해당거래처명' and m.거래처필드명=b.거래처필드명
으로 하시면 해당거래처명의 매출총금액, 입금총금액, 반품총금액, 찬조총금액을 구하실수 있을것 같습니다.
즉 위와같은 형식을 이용해서 잘 조합하셔서 매출카드DB에 계산필드를 만드시면 미수금은 항상 출력이 될것입니다. 그렇지만 위와같이 여러조건에 의해서 계산필드를 만들게 되면 속도가 현저하게 저하되는 경우가 많거든요. 제가 테스트를 해볼수 없어서 이렇다 저렇다 말씀은 못드리겠구요. 직접해보시고요. 속도에 문제가 있다면 다른 방법을 알아보셔야 할것 같습니다.(아니면 다른형식의 SQL문을 작성하시든지요. 어떻게 쓰느냐에 따라 속도차가 나거든요) 막상 주저리 말만 많지 별루 도움은 못되는것 같네요. 죄송합니다.