Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[8981] 결과내 재정렬.
cure [] 908 읽음    2003-09-29 23:11
델파이5를 쓰고 있습니다.
각 거래처의 이월, 매출, 수금 그리고 미수잔액을 구하여 보여주는 건데요
스트링 그리드에 출력을 합니다.
그런데 문제는 미수잔액이 많은 업체별로 정렬을 해야하는 경우가 생겼습니다!
워낙 여러테이블에서 내용을 가져오는지라 어떻게 해야할지 모르겠네요.
(아래 쿼리 참조.)
궁금한 것은..

1. 다음 쿼리 결과내에서 group by 및 이월+매출-수금= 미수잔액이 나오게끔 안 될까요?

2. 그게 안된다면 배열로서 일단 집어넣어서 정렬을 한 다음 스트링 그리드에 보여주는건데요.
   아니, 사실 이건 해봤는데 영 불안해서요. 더 괜찮은 방법이 없을까요?

여러군데 물어봤는데 괜찮은 방법이 없어서 여기까지 오게되었네요.^^;
//--------------------------------------------------------------------------------------------------
SELECT a.client, b.name, '1' AS seq, sum(a.amount) AS aamount, 0 AS cash, 0 AS loss, 0 AS profit, 0 AS buyamount
FROM sellm005 AS a LEFT JOIN client AS b ON a.client=b.client
WHERE a.sell_date<='20031231' And (a.gubun='0' Or a.gubun='4')
GROUP BY a.client, b.name;
//각 거래처별 년도까지의 매출금액입니다.
union all
SELECT a.client, b.name, '2' AS seq, 0 AS amount, sum(a.debit) AS cash, 0 AS loss, 0 AS profit, 0 AS buyamount
FROM gl005 AS a LEFT JOIN client AS b ON a.client=b.client
WHERE a.account='004' And a.sb_gubun='1'
GROUP BY a.client, b.name;
//각 거래처별 수금금액입니다.(은행이체)
union all
select a.client, b.name, '0' as seq,
      sum(a.debit) as amount, 0 as cash, 0 as loss, 0 as profit, 0 as buyamount
from vp004 a left join client b on a.client = b.client
where a.account = '014'
group by a.client, b.name
//이월잔액쪽 입니다.
union all
SELECT a.client, b.name, '3' AS seq, 0 AS aamount, sum(a.amount) AS cash, sum(a.loss) AS aloss, sum(a.profit) AS aprofit, 0 AS buyamount
FROM SCASH005 AS a LEFT JOIN client AS b ON a.client=b.client
GROUP BY a.client, b.name;
//각 거래처별 수금금액(어음쪽)
union all
SELECT a.client, b.name, '4' AS seq, 0 AS aamount, 0 AS cash, 0 AS loss, 0 AS profit, sum(a.amount) AS buyamount
FROM buym005 AS a LEFT JOIN client AS b ON a.client=b.client
WHERE a.sell_date<='20031231' And (a.gubun='0' Or a.gubun='4')
GROUP BY a.client, b.name;
//매입쪽 합계
union all
SELECT a.client, b.name, '5' AS seq, 0 AS aamount, sum(a.amount) AS cash, sum(a.loss) AS aloss, sum(a.profit) AS aprofit, 0 AS buyamount
FROM BCASH005 AS a LEFT JOIN client AS b ON a.client=b.client
GROUP BY a.client, b.name
ORDER BY b.name, a.client;
//매입쪽 지급.

+ -

관련 글 리스트
8981 결과내 재정렬. cure 908 2003/09/29
9403     Re:결과내 재정렬. civilian 965 2003/09/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.