Q&A

  • 데이터항목의 소계 총계를 구할려고 하는데요?
하나의 TABLE에 재고물량의 데이터가 저장되어 있습니다. 그리고, 재고 물품의 종류는

대분류, 중분류, 소분류 코드로 구분되어져 있습니다. 여기서 제가 해야 할 것이

물품의 대분류, 중분류, 소분류순서로 소계와 총계를 구할려고 하느데요 잘 안되네요.

예를 들어서,

대분류가 컴퓨터, 중분류가 보조기억장치, 마우스,, 소분류가 보조기억장치는 삼성, LG

마우스는 Intel, Micro라면

컴퓨터 총계 총수량 총가격 ....

보조기억장치 소계 수량 가격.....

삼성 소계 수량 가격 ......

삼성1 1, 1000

삼성2 2, 2000

LG 소계 수량 가격.....

LG1 2 2000

마우스 소계 수량 가격.....

INTEL 소계 수량 가격 ......

INTEL1 1, 1000

INTEL2 2, 2000

Micro 소계 수량 가격.....

Micro1 2 2000

여기서 SQL문장은 어떻게 해야하며, quickreport에서는 어떻게 해야 되는지요?

물품의 개수만큼 SQL를 써야 하나요 아니면 다름방법이 있느지

고수님들의 조언 부탁드립니다.





2  COMMENTS
  • Profile
    까마귀 2001.08.28 12:51
    백소영 wrote:

    > 하나의 TABLE에 재고물량의 데이터가 저장되어 있습니다. 그리고, 재고 물품의 종류는

    > 대분류, 중분류, 소분류 코드로 구분되어져 있습니다. 여기서 제가 해야 할 것이

    > 물품의 대분류, 중분류, 소분류순서로 소계와 총계를 구할려고 하느데요 잘 안되네요.

    > 예를 들어서,

    > 대분류가 컴퓨터, 중분류가 보조기억장치, 마우스,, 소분류가 보조기억장치는 삼성, LG

    > 마우스는 Intel, Micro라면

    > 컴퓨터 총계 총수량 총가격 ....

    > 보조기억장치 소계 수량 가격.....

    > 삼성 소계 수량 가격 ......

    > 삼성1 1, 1000

    > 삼성2 2, 2000

    > LG 소계 수량 가격.....

    > LG1 2 2000

    > 마우스 소계 수량 가격.....

    > INTEL 소계 수량 가격 ......

    > INTEL1 1, 1000

    > INTEL2 2, 2000

    > Micro 소계 수량 가격.....

    > Micro1 2 2000

    > 여기서 SQL문장은 어떻게 해야하며, quickreport에서는 어떻게 해야 되는지요?

    > 물품의 개수만큼 SQL를 써야 하나요 아니면 다름방법이 있느지

    > 고수님들의 조언 부탁드립니다.

    >

    >



    안녕하세요. 까마귀입니다.



    일단 두군데서 보여줘야 하는것 같군요.

    하나는 DBGrid에서 보이고, 또 하나는 출력물에서 보이고요.

    Grid에서 보이게 하려면 Union을 사용해야 합니다.

    Union은 서로 다른 테이블의 내용을 하나로 합쳐주는 겁니다.

    단 각 Field의 Type은 일치해야 합니다.

    여기서 테이블은 결과셋이라고 봐도 무방하고요.

    그러니까, 먼저 원하는 레코드를 가지는 결과셋을 만들고요. 소계와 총계가 아닌 말하자면 Detail적인 결과셋입니다.

    그리고, 각각의 소계를 가지는 결과셋을 만들고요.

    또, 총계를 만들면 되겠지요.

    그리고, 이것들을 Union으로 묶어주면 됩니다.



    Select 품명, 수량, 가격 From 재고테이블 Where 조건...

    Union

    Select 소분류명, '소계', Sum(수량), Sum(가격) From 재고테이블 Where 조건.. Group By 소분류명..



    이런 식으로 써주시면 됩니다.



    출력물은 더욱 간단하네요.

    일반 출력할때 처럼 잡아주시고요.

    거기에 TQRGroup, TQRBand(BandType = rbGroupFooter, rbSummary)를 사용하시면 됩니다.



    참, 여기에 관련된것들은 검색해보시면 많이 나옵니다.







    위대한 단군혼이 살아있는 나라.... 대한민국.

  • Profile
    사나이 2001.08.28 18:08
    * 카테시안 곱을 이용한 쿼리문.

    - 카테시안 곱은 각 테이블의 로우수를 곱한만큼의 자료가 나타남.

    이걸 이용해서 하나는 집계를 내고 하나는 그냥 보여줍니다..

    -이걸 좀 응용해 보세요...



    select code, decode(y.no, 1, dateid, '소계'), sum(x.primoney), sum(x.stdmoney)

    from (select code, dateid, sum(primoney) primoney, sum(stdmoney) stdmoney

    from pb_mediinsureslave

    group by code, dateid) x, (select 1 no from dual

    union all

    select 2 no from dual) y

    where y.no <= 2

    group by code, no, decode(no,1,dateid, '소계')













    까마귀 wrote:

    > 백소영 wrote:

    > > 하나의 TABLE에 재고물량의 데이터가 저장되어 있습니다. 그리고, 재고 물품의 종류는

    > > 대분류, 중분류, 소분류 코드로 구분되어져 있습니다. 여기서 제가 해야 할 것이

    > > 물품의 대분류, 중분류, 소분류순서로 소계와 총계를 구할려고 하느데요 잘 안되네요.

    > > 예를 들어서,

    > > 대분류가 컴퓨터, 중분류가 보조기억장치, 마우스,, 소분류가 보조기억장치는 삼성, LG

    > > 마우스는 Intel, Micro라면

    > > 컴퓨터 총계 총수량 총가격 ....

    > > 보조기억장치 소계 수량 가격.....

    > > 삼성 소계 수량 가격 ......

    > > 삼성1 1, 1000

    > > 삼성2 2, 2000

    > > LG 소계 수량 가격.....

    > > LG1 2 2000

    > > 마우스 소계 수량 가격.....

    > > INTEL 소계 수량 가격 ......

    > > INTEL1 1, 1000

    > > INTEL2 2, 2000

    > > Micro 소계 수량 가격.....

    > > Micro1 2 2000

    > > 여기서 SQL문장은 어떻게 해야하며, quickreport에서는 어떻게 해야 되는지요?

    > > 물품의 개수만큼 SQL를 써야 하나요 아니면 다름방법이 있느지

    > > 고수님들의 조언 부탁드립니다.

    > >

    > >

    >

    > 안녕하세요. 까마귀입니다.

    >

    > 일단 두군데서 보여줘야 하는것 같군요.

    > 하나는 DBGrid에서 보이고, 또 하나는 출력물에서 보이고요.

    > Grid에서 보이게 하려면 Union을 사용해야 합니다.

    > Union은 서로 다른 테이블의 내용을 하나로 합쳐주는 겁니다.

    > 단 각 Field의 Type은 일치해야 합니다.

    > 여기서 테이블은 결과셋이라고 봐도 무방하고요.

    > 그러니까, 먼저 원하는 레코드를 가지는 결과셋을 만들고요. 소계와 총계가 아닌 말하자면 Detail적인 결과셋입니다.

    > 그리고, 각각의 소계를 가지는 결과셋을 만들고요.

    > 또, 총계를 만들면 되겠지요.

    > 그리고, 이것들을 Union으로 묶어주면 됩니다.

    >

    > Select 품명, 수량, 가격 From 재고테이블 Where 조건...

    > Union

    > Select 소분류명, '소계', Sum(수량), Sum(가격) From 재고테이블 Where 조건.. Group By 소분류명..

    >

    > 이런 식으로 써주시면 됩니다.

    >

    > 출력물은 더욱 간단하네요.

    > 일반 출력할때 처럼 잡아주시고요.

    > 거기에 TQRGroup, TQRBand(BandType = rbGroupFooter, rbSummary)를 사용하시면 됩니다.

    >

    > 참, 여기에 관련된것들은 검색해보시면 많이 나옵니다.

    >

    >

    >

    > 위대한 단군혼이 살아있는 나라.... 대한민국.