Q&A

  • [재질문]sql 집계 문제...
먼저 아래 답변해 주신 행인4님께 감사 드립니다.

제가 다른 일로 답변 주신 것을 늦게 봤었네요.. -_-! sorry..



죄송하지만.. 아래쪽 경우에 대해서 다시한번 답변 부탁드립니다.

사용하고 있는 DB가 MS-SQL 서버와 엑세스mdb 두가지 거든요..

두가지 db의 경우에 대해 각각 좀 답해주셨으면 합니다.

엑세스mdb 경우와 MS-SQL일 경우로..

표준 sql로 할 수 있다면 표준 sql로 부탁드립니다.

그럼, 귀찮으시더라도 꼭 다시 한번 부탁드립니다.



행인4 wrote:

> 다음부터는 DB종류도 적어주면 도움이 되겠는데요.

> 오라클의 경우입니다.

> select pummung , sum(decode(gubun,1,number, number*(-1)) ) as sum_qty

> from table1

> group by pummung

>

> 이렇게 하면 될것 같은데요.

>

> 델초보 wrote:

> > 먼저 테이블을 말씀드리면.. table1이라는 테이블에

> > cnt pummung gubun number

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

> > 1 a 1 100

> > 2 a 2 50

> > 3 b 1 70

> > 4 a 2 30

> >

> > 먼저 4개의 필드 중 cnt는 카운터 필드구요..

> > 위 테이블에서 gubun = 1 이면 납품, gubun = 2 이면 반품 입니다.

> > 그런데 제품 별로 집계를 내려니,

> > 납품 - 반품 해서 a 제품은 합계가 20, b 제품은 70 이란 답이 나와야 하는데.

> > 프로그램밍으로는 제품별 구분해서 납품한것에서 반품한 것을 빼주면 되는데..

> > sql문으로는 위의 집계를 처리할 수가 없을까요?

> >

> > 할 수가 있다면 sql문을 어떻게 써야 하는지 꼭좀 부탁드립니다.

> > 그럼, 즐거운 시간 되세요.



2  COMMENTS
  • Profile
    사발우성 2001.06.14 02:03
    SELECT distinct pummung, (testa.numsum - testb.numsum)as 합

    FROM test,

    (SELECT SUM(number) AS numsum

    FROM test

    WHERE pummung = 'a' AND gubun = 1

    GROUP BY pummung) AS testa,

    (SELECT SUM(number) AS numsum

    FROM test

    WHERE pummung = 'a' AND gubun = 2

    GROUP BY pummung) AS testb

    WHERE pummung = 'a'



    에거 모리 아포 ^^ 이거 돌려 보시길... 테스트결과 답은 잘나오는군엽...ㅋㅋㅋㅋ



    델초짜! wrote:

    > 먼저 아래 답변해 주신 행인4님께 감사 드립니다.

    > 제가 다른 일로 답변 주신 것을 늦게 봤었네요.. -_-! sorry..

    >

    > 죄송하지만.. 아래쪽 경우에 대해서 다시한번 답변 부탁드립니다.

    > 사용하고 있는 DB가 MS-SQL 서버와 엑세스mdb 두가지 거든요..

    > 두가지 db의 경우에 대해 각각 좀 답해주셨으면 합니다.

    > 엑세스mdb 경우와 MS-SQL일 경우로..

    > 표준 sql로 할 수 있다면 표준 sql로 부탁드립니다.

    > 그럼, 귀찮으시더라도 꼭 다시 한번 부탁드립니다.

    >

    > 행인4 wrote:

    > > 다음부터는 DB종류도 적어주면 도움이 되겠는데요.

    > > 오라클의 경우입니다.

    > > select pummung , sum(decode(gubun,1,number, number*(-1)) ) as sum_qty

    > > from table1

    > > group by pummung

    > >

    > > 이렇게 하면 될것 같은데요.

    > >

    > > 델초보 wrote:

    > > > 먼저 테이블을 말씀드리면.. table1이라는 테이블에

    > > > cnt pummung gubun number

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

    > > > 1 a 1 100

    > > > 2 a 2 50

    > > > 3 b 1 70

    > > > 4 a 2 30

    > > >

    > > > 먼저 4개의 필드 중 cnt는 카운터 필드구요..

    > > > 위 테이블에서 gubun = 1 이면 납품, gubun = 2 이면 반품 입니다.

    > > > 그런데 제품 별로 집계를 내려니,

    > > > 납품 - 반품 해서 a 제품은 합계가 20, b 제품은 70 이란 답이 나와야 하는데.

    > > > 프로그램밍으로는 제품별 구분해서 납품한것에서 반품한 것을 빼주면 되는데..

    > > > sql문으로는 위의 집계를 처리할 수가 없을까요?

    > > >

    > > > 할 수가 있다면 sql문을 어떻게 써야 하는지 꼭좀 부탁드립니다.

    > > > 그럼, 즐거운 시간 되세요.

    >

  • Profile
    델초짜! 2001.06.14 04:55
    이제 가서 함 돌려봐야줘.. ^^

    헌데.. 죠인도 아니구.. 아래 답변 주신것 처럼 테이블 명을 콤마로 연속 찍어줘도

    괜찮은 건가용? 아직 한번도 그리 안해봤는디..

    암시적으로 죠인되는 건가?

    그건 아닌것 같고.. 서로 아무 관계(?)없는 테이블에서 필드를 빼내는데 두번째,

    세번째 테이블에서 where절을 통해 연관(?)시켜 주고,