Q&A

  • 마스타/디테일 SQL 구성에 관한 질문입니다.
제가 프로그램을 작성도중 문제에 봉착했네요 ㅠ_ㅠ



형태는 다음과 같습니다.



TABLE A



코드 내용

-----------

01 아동

02 성인

.

.

.



TABLE B



코드 연결 내용

------------------

001 01 토끼

002 01 고양이

003 02 사슴

004 02 소

005 02 염소



이 두화일을 연결해서 구성하려고 하는데요. 결과는 다음과 같은 테이블이

생성되었으면 하는데 이게 가능할지 모르겠네요.



코드 내용 수량

-----------------

01 아동 2종

02 성인 3종



만일 SQL로 안된다면 다른 방법을 찾아봐야 겠지만... 여러 선배님들의

경험을 빌리면 가능할꺼도 같아서 질문을 드립니다. 답변 부탁드리겠습니다.



DB는 InterBase를 이용하고 있습니다. 5.0에 포함된거요 ^^;;



4  COMMENTS
  • Profile
    srookie 2001.01.05 08:58
    윤규성 wrote:

    > 제가 프로그램을 작성도중 문제에 봉착했네요 ㅠ_ㅠ

    >

    > 형태는 다음과 같습니다.

    >

    > TABLE A

    >

    > 코드 내용

    > -----------

    > 01 아동

    > 02 성인

    > .

    > .

    > .

    >

    > TABLE B

    >

    > 코드 연결 내용

    > ------------------

    > 001 01 토끼

    > 002 01 고양이

    > 003 02 사슴

    > 004 02 소

    > 005 02 염소

    >

    > 이 두화일을 연결해서 구성하려고 하는데요. 결과는 다음과 같은 테이블이

    > 생성되었으면 하는데 이게 가능할지 모르겠네요.

    >

    > 코드 내용 수량

    > -----------------

    > 01 아동 2종

    > 02 성인 3종

    >

    > 만일 SQL로 안된다면 다른 방법을 찾아봐야 겠지만... 여러 선배님들의

    > 경험을 빌리면 가능할꺼도 같아서 질문을 드립니다. 답변 부탁드리겠습니다.

    >

    > DB는 InterBase를 이용하고 있습니다. 5.0에 포함된거요 ^^;;

    >



    안녕하세요.

    일단 제가 Interbase를 깔아놓지 않은 관계로 MS Access에서 만들어 봤습니다.

    TableA

    CODE 코드

    KIND 내용



    TableB

    CODE 코드

    LINK 연결

    KIND 내용



    SELECT TableA.CODE as 코드, TableA.KIND as 내용 ,count(*) as 수량

    FROM TableA, TableB

    where TableA.CODE = TableB.LINK

    group by TableA.CODE, TableA.KIND



    SQL은 크게 다르지 않을 겁니다 아마.

    도움이 되시길...

  • Profile
    윤규성 2001.01.05 02:56
    임형호 님께서 알려주신 방법으로 하면 인터베이스에서는 이런 에러가 떨어지더군요.

    invalid request BLR at offset 109

    -context already in use (BLR error)



    그래서 오라클을 주로 다루시는 제 선배님께 도움을 요청한 바 이런 방법을 일러주셨

    습니다. 이 내용으로 하면 제가 원하는 해답이 정확히 나오더군요.



    a table

    code, name field,

    b table

    code, rcode, name field (rcode is related a.code)



    select a.code, a.name, count(*) total from a, b

    where a.code=b.rcode

    group by a.code, a.name



    결과는 이런식으로 나옵니다.



    code name total

    ========================

    01 아동 2

    02 성인 3



    여하튼 신경써주셔서 감사합니다.





  • Profile
    임형호 2001.01.05 01:14
    윤규성 wrote:

    > 제가 프로그램을 작성도중 문제에 봉착했네요 ㅠ_ㅠ

    >

    > 형태는 다음과 같습니다.

    >

    > TABLE A

    >

    > 코드 내용

    > -----------

    > 01 아동

    > 02 성인

    > .

    > .

    > .

    >

    > TABLE B

    >

    > 코드 연결 내용

    > ------------------

    > 001 01 토끼

    > 002 01 고양이

    > 003 02 사슴

    > 004 02 소

    > 005 02 염소

    >

    > 이 두화일을 연결해서 구성하려고 하는데요. 결과는 다음과 같은 테이블이

    > 생성되었으면 하는데 이게 가능할지 모르겠네요.

    >

    > 코드 내용 수량

    > -----------------

    > 01 아동 2종

    > 02 성인 3종

    >

    > 만일 SQL로 안된다면 다른 방법을 찾아봐야 겠지만... 여러 선배님들의

    > 경험을 빌리면 가능할꺼도 같아서 질문을 드립니다. 답변 부탁드리겠습니다.

    >

    > DB는 InterBase를 이용하고 있습니다. 5.0에 포함된거요 ^^;;

    >







    select distinct a.코드, a.내용,

    (select count(code) from b

    where b.연결=a.코드) as 수량 from a, b





    위와같이 하면 될것은 같은데.... 테스트는 인터베이스가 아니고.. MS-SQL입니다.

    안될수도 있구요. 대강 해본거라서... 그냥 참고만 하세요.

    더 쉬운방법이 있을지도 모르겠지만서도...음... 지금 당장 생각나는것이 이것밖에 없네요. 혹...다른분들께서 보시고...틀렸다 생각되시거나 더 좋은 방법이 있으면...서슴치말고 알켜주세요. 저두..알고요. 그럼...



  • Profile
    윤규성 2001.01.05 01:52
    꾸벅