최근에 sql..group by에 대해서 알게되었습니다...
그런데 실질적으로 적용을 하려니깐 몇가지 문제가 있어서요...
제가 가진 책과 인터넷에 있는 자료를 아무리 보아도 모르겠네요...
select a.코드, a.상호, sum(b.총금액) from 거래처.db a, 전표.db b
where a.코드 = b.거래처코드 and a.구분 = ''@''
group by a.코드, a.상호
라고 하였을때...
첫째, sum(b.총금액)부분의 필드명을 알고싶습니다...
필드명을 알아야 어떻게 조작을 하던지 할텐데 도무지 모르겠구요...
둘째, 인덱스 생성이 안되는지요...
위사항은 거래처별로 금액별 판매순위을 나타내는데 order by하면 error가 나오더군요....
세째, 위 사항을 dbgrid나 레포트로 표현할려면 필드명들을 어떻게 가지고 올수 있나요...
Query1을 선언하고 안에 아무런 필드명을 주지 못하니깐 dbgrid에 타이틀이나 색을 줄수가 없더군요...
또한 인쇄를 하려고 하니깐 dbtext를 무엇으로 잡아야 할지 모르겠구요...
네째, group by에서 a.코드만 해도 될텐데 하나만 선언하면 에러가 나고 위처럼 두개이상을 선언해야 정상적으로 산출이 되거든요...
왜 그러져???
다섯째, 위 사항처럼 순위를 매긴다면 순위를 나타내는 일련번호를 자동으로 산출할수 있는 방법은 없나여??
지금은 위처럼 해서 만일 정렬을 시킨다고 가정하면 새로운 파일에 하나씩 옮겨 저장하면서 순위를 부여해야 되거든요...
그러면 그만큼의 시간이 걸려서요...
마지막으로 위 sql에 관련된 아주아주 자세한 사항에 대한 책자나 내용을 알려면 어떻게 해야하는지 길을 가르쳐 주세요...^^
고수 여러분들의 따뜻한 가르침을 부탁합니다...
lsg2453@hanmail.net
첫째 as 를 사용하십시요
select a.코드, a.상호, sum(b.총금액) as sum_price from 거래처.db
이런식으로 쿼리를 날리고 sum_price 를 필드명으로 사용하시면 됩니다.
둘째 인덱스의 생성은 안되는 걸로 알구요..
order by 의 경우에는 오라클에서는 group by 를 한 필드명과 똑같이
줄경우에만 가능하더군요..
셋째 첫번째와 같은 내용이겠지요.. 디비그리드 같은 경우에는
데이터소스 잡아주고 더블클릭해서 필드에디터에서 하시면 될겁니다.
넷째 select를 코드와 상호 두개 하기때문에 group by도 두개를 쓸수
밖에 없읍니다. (당연한거 같은데....)
결국 group by 라는게 동종끼리 묶어서 뭐를 좀 해보자는 얘기고...
그럴경우 각 종으로 묶는 기준을 잡아야 겠죠..
기준이외의 필드를 select 해오는 거는 좀 말이 안맞는거 같은데요..
음.. 결론을 얘기하자면.. group by 함수를 쓰실때는
select 절에는 기준이되는 필드와 그룹함수만이 사용 가능합니다.
좀 어설픈 설명이지만.. 도움이 되었기를...
--------------------------------------------------------------