Q&A

  • 두개의 테이블을 Union을 사용해서 그룹하는데..문제가..좀 봐주세요
아직 많이 부족해서 매번 질문만 합니다. - -;

아래와 같이 두개의 테이블을 Union으로 그룹화 시켰는데

결과가 두개의 테이블 각각 그룹화되어서 출력이 됩니다.

제가 원하는건 두테이블의 레코드 전체를 그룹화시키켜서

출력하려고 하는데...

답변 좀 꼭~ 해주세요



SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount)

FROM "U_Exhibitor2001.DB" U_exhibitor2001

GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

Union

SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount)

FROM "U_Exhibitor2002.DB" U_exhibitor2002

GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

2  COMMENTS
  • Profile
    쭉쭉빵빵 2001.04.04 06:48
    [오라클]



    <방법 1>

    SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(SumSale)

    FROM

    (

    SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount) SumSale

    FROM "U_Exhibitor2001.DB" U_exhibitor2001

    GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

    Union

    SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount)

    FROM "U_Exhibitor2002.DB" U_exhibitor2002

    GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

    )

    GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount



    <방법2>

    GoodsCode,GoodsName, GoodsRank, GoodsCount 필드가 인덱스가 잡혀있다면

    Stored Procedure 도 괜찮은 방법입니다.



    <방법3>

    3Tier에서는 안통합니다.

    DB Connect 하시고



    SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount) SumSale

    FROM "U_Exhibitor2001.DB" U_exhibitor2001

    GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

    Union

    SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount)

    FROM "U_Exhibitor2002.DB" U_exhibitor2002

    GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

    INTO TEMP TEMP001;



    여기서 INTO TEMP는 Informix에서 지원했던것인데 오라클 8이상에서도

    비슷한것을 지원한다고 하네요. 다른이름으로 쓸수도 있음.



    SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(SumSale)

    FROM TEMP001

    GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount



    DB close 함.





    쩝 DB 이름보니 파라독스이군요, 파라독스이면 전 모르겠네요.



    델초보 wrote:

    > 아직 많이 부족해서 매번 질문만 합니다. - -;

    > 아래와 같이 두개의 테이블을 Union으로 그룹화 시켰는데

    > 결과가 두개의 테이블 각각 그룹화되어서 출력이 됩니다.

    > 제가 원하는건 두테이블의 레코드 전체를 그룹화시키켜서

    > 출력하려고 하는데...

    > 답변 좀 꼭~ 해주세요

    >

    > SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount)

    > FROM "U_Exhibitor2001.DB" U_exhibitor2001

    > GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

    > Union

    > SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount)

    > FROM "U_Exhibitor2002.DB" U_exhibitor2002

    > GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

  • Profile
    초보 2001.04.04 10:18
    쭉쭉빵빵 wrote:

    > [오라클]

    >

    > <방법 1>

    > SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(SumSale)

    > FROM

    > (

    > SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount) SumSale

    > FROM "U_Exhibitor2001.DB" U_exhibitor2001

    > GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

    > Union

    > SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount)

    > FROM "U_Exhibitor2002.DB" U_exhibitor2002

    > GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

    > )

    > GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

    >

    > <방법2>

    > GoodsCode,GoodsName, GoodsRank, GoodsCount 필드가 인덱스가 잡혀있다면

    > Stored Procedure 도 괜찮은 방법입니다.

    >

    > <방법3>

    > 3Tier에서는 안통합니다.

    > DB Connect 하시고

    >

    > SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount) SumSale

    > FROM "U_Exhibitor2001.DB" U_exhibitor2001

    > GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

    > Union

    > SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount)

    > FROM "U_Exhibitor2002.DB" U_exhibitor2002

    > GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

    > INTO TEMP TEMP001;

    >

    > 여기서 INTO TEMP는 Informix에서 지원했던것인데 오라클 8이상에서도

    > 비슷한것을 지원한다고 하네요. 다른이름으로 쓸수도 있음.

    >

    > SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(SumSale)

    > FROM TEMP001

    > GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

    >

    > DB close 함.

    >

    >

    > 쩝 DB 이름보니 파라독스이군요, 파라독스이면 전 모르겠네요.

    >

    > 델초보 wrote:

    > > 아직 많이 부족해서 매번 질문만 합니다. - -;

    > > 아래와 같이 두개의 테이블을 Union으로 그룹화 시켰는데

    > > 결과가 두개의 테이블 각각 그룹화되어서 출력이 됩니다.

    > > 제가 원하는건 두테이블의 레코드 전체를 그룹화시키켜서

    > > 출력하려고 하는데...

    > > 답변 좀 꼭~ 해주세요

    > >

    > > SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount)

    > > FROM "U_Exhibitor2001.DB" U_exhibitor2001

    > > GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount

    > > Union

    > > SELECT GoodsCode,GoodsName, GoodsRank, GoodsCount,Sum(GSaleCount)

    > > FROM "U_Exhibitor2002.DB" U_exhibitor2002

    > > GROUP BY GoodsCode,GoodsName, GoodsRank, GoodsCount