Q&A

  • 쿼리문을 만들어 보려고 하는데.. 잘 않되요...
SQL 2000 을 사용하고 있습니다..


안녕하세요..^^

아무리 생각해도 잘 풀리지 않는 것이 있어서 이곳에 물어 보려 합니다..

우선 데이터가 아래와 같이 있다고 한다면..

전표일자, 전표번호, 구분, 장소,    수량
20040101    0001          1       H0001    10
20040101    0001          1       H0002    10
20040102    0001          2       H0003    4
20040102    0002          2       H0003    5
...

테이블을 보니 키가 전표일자, 전표번호, 구분, 장소 까지가 키로 정해져 있습니다.
그래서.. 전표번호가 중복으로 만들어 지더군요..
그리고 장소를 빼고는 중복된 데이터는 내용이 같습니다.
근데.. 쿼리는 전표 번호가 중복되지 않게 만들어야 한다는데..
도저히 생각해도 않되더군요..

SELECT 전표일자, 전표번호, 구분, 장소, 수량
FROM TJaego
......

저 위에 눈에 보이는 데이터 중에 아래와 같이 뽑아 오려면.. 어케 쿼리를 만드는것이 좋을까요?
조건은
1.전표일자와 전표번호는 무조건 하나만 나와야 한다
2. 만약 두개가 있다면.. 장소가 큰것이 나와야 한다

이 두 조건을 만족하게 뽑아 내면.. 아래와 같이 되는데.. 방법이 생각 않남니다..

전표일자, 전표번호, 구분, 장소,    수량
20040101    0001          1       H0002    10
20040102    0001          2       H0003    4
20040102    0002          2       H0003    5
...

부탁 드립니다.. 방법좀 알려주세요...
3  COMMENTS
  • Profile
    착한천사 2004.09.12 00:05
    착한천사 김경록입니다..
    전 다른 query문을 제안하고자 합니다..
    일단,
    data를 뽑아내는 경우의수를 대부분 index차원에서
    해결하고자 했습니다.
    물론, 좀 길어지긴 했습니다만...
    이것이 답은 아니라고 여겨집니다..
    data건수가 얼마나 되는지 몰라서..  *^^*
    partitioning이 되어있는지도 몰라서..  *^^*
    일단 아래 sql문을 제안합니다..

    ※  단, 테이블에서 full searching을 하지 않으며,
         조회될 data가 전표일자 구간을 이용해서
         index 분포도가 10%미만일때에만 아래 SQL문을
         권장합니다..
         (전표일자를 아마도 지정해서 조회를 할 것 같은 예감이 드는군요..
          그래서.. 전표일자를 넣었죠.. *^^*)

    ps.
    만약, full searching을 하시고자 한다면,
    explain(실행계획)을 확인하셔서,
    filter하는 형식을 취한다면,
    조금 빠른 결과를 나타내리라 여겨집니다..



    [제안 SQL]

    SELECT A.전표일자,
           A.전표번호,
               A.구분,
               A.장소,
               (SELECT 수량 FROM 테이블명(?)
             WHERE 전표일자 = A.전표일자
               AND 전표번호   = A.전표번호
               AND 구분  = A.구분
               AND 장보    = A.장소) SU
      FROM (  SELECT 전표일자,
                     전표번호,
                     구분,
                     MAX(장소) LOC
                FROM 테이블명(?)
               WHERE 전표일자 >= '20040101'
                 AND 전표번호 <= '99999999'
               GROUP BY 전표일자,전표번호,구분
            ) A


  • Profile
    모영철 2004.09.11 02:15
    킁 SQL2000 이군요

    모르는 해본적이 없는 디비지만.

    뭐 비슷할거라 가정하고 (다른디비는 잘모르거든요..오로지 오라클만..)

    좀 시간이 걸릴수도 있겠지만.

    장소가 큰값이란게 어떤건지 모르겠습니다만..

    중첩질의를 쓰면 될지도..

    select *
    from TJaego
    where 전표일자||전표번호||장소 =
                        (select 전표일자||전표번호||MAX(장소)
                           from TJaego
                          group by 전표일자, 전표번호)

    각 전표일자와 전표번호별로 가장큰 장소값을 가지고

    먼저 자료를 걸러 줍니다.

    저게 잘될지 모르겠네요..where 절에 || 는 값을 연결해주는겁니다. 델파이로 치면 +

  • Profile
    누렁이 2004.09.10 22:17
    언뜻 보기에는 쉬워보여도, 그렇지가 않네요..

    저도 내공이 부족해서 그런가???

    단일쿼리로는 풀리기 힘들 것 같구요.

    스토드프로시져를 사용하시는 것이 좋을 것 같네요.

    아니면 프로그램 코딩으로 해결할 수도 있을 것 같구요..

    아래는 꽁수를 써봤네요. 참고하세요

    select * into #test1 from TJaego
    update #test1 set 장소=D.장소 from TJaego D, #test1 T where T.전표일자=D.전표일자 and T.전표번호=D.전표번호 and T.구분=D.구분
    select * from #test1 group by 전표일자,전표번호,구분,장소,수량

    • 김학초
    • 2004.09.15 06:05
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2004.09.15 08:48
      qrp 파일은 퀵리포트의 결과 파일이라 아마도 수정하기 힘들것 같습니다. 결국에 기존에 들어가 있는 데이...
    • 석주현
      2004.09.15 09:26
      내용무
    • 김학초
      2004.09.16 07:11
      음...EMF이건 또 제가 잘 몰라서...찾아보니까 Enhanced Windows Metafile 이런건가요? 암튼 그냥 내용만 ...
    • 이치영
    • 2004.09.14 23:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 누렁이
      2004.09.15 19:08
      바코드 프로그램은 라벨프린터의 종류에 따라 엄격히 소스가 달라집니다. 일반 프린터로 뽑는 것은 더욱 ...
    • cell
      2004.09.15 03:15
      바코드프로그램 소스는 자료실에서 몇개 올라와 있는거를 본거 같은데요. 참고서적은 책을 보시는 것...
    • 이승민
      2004.09.14 22:29
    • 메니아
      2004.09.15 00:31
    • 이승민
      2004.09.15 02:20
    • 메니아
      2004.09.15 02:44
    • 꿈의대화
      2004.09.15 18:44
    • 메니아
      2004.09.16 09:41
    • 최용일
      2004.09.17 19:04
    • 송 시중
    • 2004.09.14 01:33
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 문명현
    • 2004.09.13 22:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • cell
      2004.09.13 23:00
      델 6부터 varvariant형이  Variants에 포함되어 있어서 그런것 같은데요 Unit에 Variants 포...
    • 김춘경
    • 2004.09.13 18:05
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 장태원
      2004.09.13 18:53
      SAPLogin, 그리고, SAPFunction 만 깔아도 될듯 합니다.
    • 오병주
      2004.09.13 20:02
      음........ 어느회사인지 모르겠지만... 대략 저희회사랑 비슷 한 시스템을 가지고 운영하는듯 하네요 ...
    • 김춘경
      2004.09.14 01:41
      ^^ 관심 가져 주셔서 감사합니다. 근데, 임포트 페이지의 목록에 SAP Function 이 안나오는데요... ...
    • KDDG_BaSTaD
      2004.09.12 20:04
      ==> 안녕하세요 KDDG_BaSTaD 입니다. 인증이 실패하신다면... 로그를 먼저확인하셔야겠네요.. S...
    • 이상현
      2004.09.13 09:29
      답변 감사합니다. 계속 확인해 보겠습니다.
    • 최용일
      2004.09.15 04:45
      안녕하세요. 최용일입니다. 무엇을 원하는지는 잘 모르겠지만.... 마우스 커서에 이름은 없습니다. ...
    • 정환철
    • 2004.09.11 22:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 백록화
      2004.09.12 16:49
      yo` PageUp 은 VK_NEXT PageDown 은 VK_PRIOR 로 정의 되어 있네요 windows.pas 참조... 그럼..
    • 일그니
      2004.09.12 02:21
      KeyPress -Dos mode 상의 아스키값(알파벳, 숫자, 기호, 엔터, 탭, ESC등의 값)  char형 Key...
    • 진돌
    • 2004.09.11 09:49
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김상완
    • 2004.09.11 04:16
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 황성욱
      2004.09.13 20:31
      AggregationActive 속성도 True하셨나여?
    • 김상완
      2004.09.14 23:09
      AggregationActive 속성이 문제였네요.. 답변 감사합니당..^^
    • 김형균
    • 2004.09.11 02:35
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 박준철
      2004.09.11 17:47
      찾아 봤는데 쉽게 찾아지질 않네요 Query3.Close; Query3.SQL.Clear; Query3.DatabaseName := 'MyNewA...
    • 일그니
      2004.09.11 04:05
      음. 일단 query2,3 생성후 프리해주는 부분이 안보이네요. 루핑 도시면서 계속 생성만 해주면.. 좀 .....
    • 김형균
      2004.09.11 18:51
      답변 주신 두분께 감사 드립니다.. 해결이 된듯 합니다.. 쿼리를 임시로 생성을 안하고 아예 콤퍼넌트를...
    • 백록화
      2004.09.11 06:16
      yo` 인스톨쉴드 를 써본지가 오래돼서...^^;; MySQL ODBC 셋업프로그램도 설치과정에 넣을수 있을꺼...
    • 파멸의슬픔
      2004.09.11 02:27
      Database 컴포넌트 Properties에 보시면 Params 안에 USER NAME=XXXX PASSWORD=XXXX 넣어주세요... ...
    • 정경주
    • 2004.09.10 20:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 오병주
      2004.09.10 23:18
      델파이에서는 보통 상속(INHERIT)이라 함은 어떤 대형 프로젝트를 나눠서 개발할때 공통화 모듈로 상속(I...
    • 이승민
      2004.09.10 20:59
      여기 강의실에서 '상속' 이라고 검색하시면 참조할 자료가 나올듯합니다. 즐프~~~
    • 박준영
    • 2004.09.10 20:17
    • 3 COMMENTS
    • /
    • 1 LIKES
    • 착한천사
      2004.09.12 00:05
      착한천사 김경록입니다.. 전 다른 query문을 제안하고자 합니다.. 일단, data를 뽑아내는 경우의수를 대...
    • 모영철
      2004.09.11 02:15
      킁 SQL2000 이군요 모르는 해본적이 없는 디비지만. 뭐 비슷할거라 가정하고 (다른디비는 잘모르거...
    • 누렁이
      2004.09.10 22:17
      언뜻 보기에는 쉬워보여도, 그렇지가 않네요.. 저도 내공이 부족해서 그런가??? 단일쿼리로는 풀리기...
    • 석주현
      2004.09.10 20:13
      음 혹시 Project Options 에서 Packages 탭에 Runtime pakages 에 빌드 위드 런 타임 팩키지를 체크한...
    • 김선아
      2004.09.10 20:28
      정말 고맙습니다.(눈물나요..이거땜에 철야까지 했는뎅!) 제가 초보라 그런걸 잘 몰라 무조껀 컴파일...
    • 일그니
      2004.09.10 21:17
      New30 이라고여... 흠.. 예전에 햇던.. 모방송국 시스템이 떠오르네여 ^^ 체크를 하시면... 아래 하단...
    • 박상윤
      2004.09.16 02:34
      스트림도 지원하기는 하지만 위의 코드처럼.. 바로 지원하기는 힘들것  같습니다. 소스 필...
    • 무수리
    • 2004.09.10 03:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 깔쌈보이
      2004.09.10 04:42
      SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 1); SendMessage(Application.Handle,...