Q&A

  • sql..group by에 관하여...
최근에 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
1  COMMENTS
  • Profile
    서은구 2002.02.18 05:50
    제가 아는 선에 답변을 드리도록하죠..
    첫째 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 절에는 기준이되는 필드와 그룹함수만이 사용 가능합니다.

    좀 어설픈 설명이지만.. 도움이 되었기를...
    --------------------------------------------------------------

    • 강정구
    • 2002.02.18 20:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • * 아자!! *
      2002.02.18 21:40
      소스를 찾아보면 많이 있을것 같은데... 저두 그 부분 구현해볼려구 이곳저곳 찾다가... 비슷한 답변을 ...
    • 이명옥
    • 2002.02.18 20:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 허일학
      2002.02.18 20:31
      다음과 같이 하시면 폼의 이동과 크기를 고정 시킬 수 있습니다.. 참고하시길 바랍니다..^^... &n...
    • 설승호
    • 2002.02.18 19:42
    • 4 COMMENTS
    • /
    • 0 LIKES
    • Yellena
      2002.04.12 20:39
      저두 브레이크 포인트가 걸리질 않아요... 어떻게 해야 하나요?
    • gudwhrla
      2002.02.18 21:52
      메인 프로그램에서 dll를 디버깅 할 수 는 없습니다. 거꾸로 하셔야 합니다. Dll 프로젝트로 Open 하...
    • 설승호
      2002.02.18 22:38
      네... 답변은 감사 합니다만... DLL프로젝트를 이미 열구 프로젝트내에서 브래이킹포인트를 걸어 놓은 상...
    • 설승호
      2002.02.18 22:37
      이미 그렇게 한거거덩요.. DLL을 수정할려는거니깐 DLL 프로젝트에서 브래이킹 포인트를 붙인거지여. 런 ...
    • 김기수
      2002.02.18 21:05
      <- Delphi Tips 에서 textfile 로 검색후 첫번째 게시물을 참고 하십시오.
    • 최용일
      2002.02.18 18:44
      안녕하세요. 최용일입니다. 바탕화면이라.... 여기에다가 프로그램 설치하는 경우는 한번도 못봤는데......
    • 허일학
      2002.02.18 18:42
      단순히 외부실행파일을 불러들여 실행할려면 다음가 같이 하시면 될꺼 같은데요..^^.. 참고하시기 바...
    • 우영범
      2002.02.18 18:27
      단순히 기능만 구현하려면 SendStream만으로 가능합니다. 하지만 전송 상황이라든가 에러 처리를 위해서는...
    • 노정윤
    • 2002.02.18 07:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 우영범
      2002.02.18 18:22
      ShGetFileInfo API를 이용하면 됩니다. // Get System Image List procedure TfrmRemoteExplorer.GetSy...
    • 조현석
    • 2002.02.18 06:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김규한
      2002.02.18 20:35
      안녕하세요? 저같은 분이시네용~ 혼자 독불장군식으로 막무가내로 배웠는데 ^^; 암튼 책은요. 가남사...
    • 노수경
    • 2002.02.18 05:40
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최보&#46
    • 2002.02.18 04:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 권대웅
      2002.02.18 04:33
      1. FileExists란 함수를 쓰세요! if FileExists('여기에 파일 패스와 이름을 넣고...') then  ...
    • 이승근
    • 2002.02.18 02:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 서은구
      2002.02.18 05:50
      제가 아는 선에 답변을 드리도록하죠.. 첫째 as 를 사용하십시요 select  a.코드, a.상호, sum...
    • 김기수
      2002.02.18 01:55
      레코드? 필드? 정확한 질문이 정확한 답변을 얻습니다.
    • 권대웅
      2002.02.18 19:03
      DB의 모든 테이블과 테이블의 필드정보 얻는 간단한 예제입니다. unit Unit1; interface use...
    • 박영수
      2002.02.18 18:18
      예 죄송합니다. 제 입장만 생각했네요. ^^; 필드를 알고 싶습니다. 아신다면 가르쳐주면 정말 고맙겠습니...
    • 이추형
      2002.02.18 18:52
      SQL SERVER는 손 놓은지 여러해가 되어 잘 기억이 나지 않지만 오라클은 유저의 권한이 있다면 다음의 SQL...
    • 허일학
      2002.02.18 01:52
      정확한건 아닙니다만...다음과 같은 형식을 조금응용하시면 원하시는 결과를 얻을 수 있을것이라 생각 ...
    • 김희창
    • 2002.02.17 12:04
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Mr. Ziker
      2002.02.17 17:46
      안녕하세욤! SQL-SERVER에서는 운영체제 자체에 등록된 계정으로 허가를 받아 접속이 가능합니다. 이부...
    • 김희창
      2002.02.18 01:15
      물론 그 계정도 superuser 계정으로 줬습니다.. 덧붙이자면.. TDatabase 의 계정 밑 DB를 묻는 곳에서 p...
    • Mr. Ziker
      2002.02.17 19:15
      안녕하세욤! 받는 부분에서  스트림으로 못 받는거 같은데요.. 보낼때 SendStream으로 보내...
    • 구철수
    • 2002.02.17 09:19
    • 0 COMMENTS
    • /
    • 0 LIKES
    • Mr. Ziker
      2002.02.17 19:45
      안녕하세욤!! 기본적으로 MDI폼에서 Child폼을 생성 할때 동적 생성을 합니다. 그정보는 부모폼에 있...
    • 박남준
    • 2002.02.17 08:43
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 한방러쉬
      2002.02.20 20:11
      맨윗단에 있는 TSocket 에서 원하는 대로 지정해주면 될것 같은데여... 아래는 참고 소스 코드 임다... ...
    • Mr. Ziker
      2002.02.17 19:23
      안녕하세욤! UDP는 통신용으로는 적합하지 않다고 생각 합니다. 그래서 요즘 TCP/IP를 쓰는것이 UDP...
    • 박남준
      2002.02.17 21:21
      저녁에 글을 올렸는데 아침에 답변을 보게 되네요.. 답변 감사합니다..^^ 근데 제가 몇 가지 빠트린 것이...