Q&A

  • 쿼리 고수분들 좀 도와주세요. 부탁드립니다. ㅠ.ㅠ
안녕하세요..

정말 델고수분들께 한가지 질문이 있어서 이러케 글을 올립니다.

데이타베이스가있는데염.. 그형식이.. 맨위에꺼 필드명입니다.ㅜ.ㅜ

aaa bbb ccc ddd

1 2 3 4

5 6 7 8

9 10 11 12



이런식으로 있는데. 이걸..

1+2+3+4 더해서 4옆에다가 8을 출력하고.또 그옆에다가 8을출력 그다음엔

5+6+7+8 을 더해서 그 값을 8옆에다가 그후에 아까 더했던 8과 요번에 나온값을더해서 그 옆에. 한마디로 저 데이타를 밑에꺼 처럼 바꿀수있는 쿼리문이 있을까요.?



aaa bbb ccc ddd xxx jjj

1 2 3 4 8 8

5 6 7 8 26 34

9 10 11 12 42 76



ㅜ.ㅜ 꼭즘 알려주세염..

가능한지 불가능한지라도..(쿼리로.초보라. 좀 자세히 ㅜ.ㅜ)

회사에 조금이라도 보템이 되기 위해 노력하는 바보 감자였습니다..

언제나 질문에 답변해주시는 착한. 델 고수님들 감사합니다..

언제나 행복하세염. 그럼 꾸벅... ^^

저 밑에 가르쳐주신 분 정말 감사드립니다..ㅜ.ㅜ

그래도 몰라서 다시 질문 올립니다 ㅠ.ㅜ..

아..참고로 제가 쿼리 올릴께요.



select a.jumin_no,a.cust_name,c.date,a.cust_name,b.oneday_too,b.oneday_toosu,b.too_ilsu,(b.oneday_too*b.oneday_toosu*b.too_ilsu) as aaa from cust a,jodc1 b,johc1 c

where a.chart_no=b.chart_no and a.cust_no=b.cust_no and a.c1_cnt=b.c1_cnt and

c.chart_no=b.chart_no and c.cust_no=b.cust_no and c.c1_cnt=b.c1_cnt and

c.date between '20000801' and '20000801' and

a.del='P' and

c.del='P' and

b.goods_name='코데날정(단일)' order by c.date





요건데 이걸 쓰면



jimin_no cust_name date onedat_too onedaytoo_su too_ilsu aaa

8205221403827 델포이 20000801 1.5 1 2 3



요러케 나와요..



저 aaa 필드 뒤에다가 누적값을 넣어주는건데..ㅠ.ㅠ..

합계는 나오니깐요..

좀 도와주세여 ㅠ.ㅠ 조인을 하면서 해야하기 때문에..ㅠ.ㅠ.

그럼 .. 언제나 행복하시구요.. 이글읽어주셔서 감사해요.. 그럼..꾸벅... *^.^*







5  COMMENTS
  • Profile
    바보감자(델포이) 2000.09.29 08:16
    정말 감사합니다.

    ㅠ.ㅠ

    맘착하신분들이 정말 너무너무 많아서 기뻐여~~~~~~~

    언제나 좋은 시간.. 음..프로그래머들은.

    좋은 시간을 다 코딩에 .... ^^;;

    생각날때 짜구 안날때 놀구 헤헤헤 ^^;;

    멋진 직업이라고 생각합니다

    나두 빨리 실력 키워서 사람들 도와주면서 실력 키워야 하는뎅 ..웅..^^

    그럼 정말 감사해요. ^^~~~







    언제나 비를 기다리는 바보감자 올림.



  • Profile
    mafioso 2000.09.29 03:53


    고생이 많쿠만요...



    내용을 보아하니 특정제품의 투여량을 명세와 함께 투여량누계까지 보여주는 것

    같은데요(맞나요?)



    보여지는 순서대로 누계가 계산되어야 하기 때문에 order by date 에 다가

    순서의 기준이 되는 필드가 추가로 있어야 합니다.

    Oracle 같은 경우는 내부적으로 rowid(조회된 rowd의 일련번호) 라는 값이 있어

    별도의 필드가 필요없지만 그렇지 않은 경우에는 특정필드를 기준으로 정렬해야죠.

    아래의 경우는 일자별, 주민번호의 순으로 하는 경우입니다.



    최적의 방법이라고 말할수는 없지만 참고하시길...



    select a1.jumin_no,

    a1.cust_name,

    c1.date,

    a1.cust_name,

    b1.oneday_too,

    b1.oneday_toosu,

    b1.too_ilsu,

    aaa = (b1.oneday_too*b1.oneday_toosu*b1.too_ilsu),

    jjj = (select sum(b2.oneday_too*b2.oneday_toosu*b2.too_ilsu)

    from cust a2, jodc1 b2, johc1 c2

    where a2.chart_no = b2.chart_no

    and a2.cust_no = b2.cust_no

    and a2.c1_cnt = b2.c1_cnt

    and c2.chart_no = b2.chart_no

    and c2.cust_no = b2.cust_no

    and c2.c1_cnt = b2.c1_cnt

    and c2.date between '20000801' and '20000801'

    and a2.del='P'

    and c2.del='P'

    and b2.goods_name='코데날정(단일)'

    and c2.date+a2.jumin_no <= c1.date+a1.jumin_no) -- row번호비교

    from cust a1, jodc1 b1, johc1 c1

    where a1.chart_no = b1.chart_no

    and a1.cust_no = b1.cust_no

    and a1.c1_cnt = b1.c1_cnt

    and c1.chart_no = b1.chart_no

    and c1.cust_no = b1.cust_no

    and c1.c1_cnt = b1.c1_cnt

    and c1.date between '20000801' and '20000801'

    and a1.del='P'

    and c1.del='P'

    and b1.goods_name='코데날정(단일)'

    order by c1.date, a1.jumin_no

  • Profile
    ... 2000.09.29 02:47


    디비 종류가 뭔가요???



    로컬이 아니라면 InLineView를 사용하실수 있을껀데....



    맞는지는 모르겠지만

    select a.name,a.aaa,a.bbb,a.ccc,a.ddd,b.jjj

    from tablename a,

    (select c.name,sum(d.aaa+d.bbb+d.ccc+d.ddd) jjj

    from tablename c,tablename d

    where c.name >= d.name

    group by c.name ) b

    where a.name=b.name



    대충 이런식이면 되지않을까요?^^;;;;















  • Profile
    사발우성 2000.09.29 01:20
    엄청 초보 사발임당...



    xxx 까쥐는 계산필드로 할수 있게는디 jjj는 어렵네여 ^^



    select a,b,c,d,(a+b+c+d) xxx from abcd



    order by a



    이렇게 하면 xxx 까쥐는 나옴당.....



    그런디 jjj는



    초보인 저한테는 무리군여 ^^



    조금 도움이 됐는지.....--;;



    헐.. 그럼 이만...... 펑~

  • Profile
    성호종 2000.09.29 00:38
    델포이 wrote:

    조인보다는 calc필드를 사용하시는게 좋을듯...



    > 안녕하세요..

    > 정말 델고수분들께 한가지 질문이 있어서 이러케 글을 올립니다.

    > 데이타베이스가있는데염.. 그형식이.. 맨위에꺼 필드명입니다.ㅜ.ㅜ

    > aaa bbb ccc ddd

    > 1 2 3 4

    > 5 6 7 8

    > 9 10 11 12

    >

    > 이런식으로 있는데. 이걸..

    > 1+2+3+4 더해서 4옆에다가 8을 출력하고.또 그옆에다가 8을출력 그다음엔

    > 5+6+7+8 을 더해서 그 값을 8옆에다가 그후에 아까 더했던 8과 요번에 나온값을더해서 그 옆에. 한마디로 저 데이타를 밑에꺼 처럼 바꿀수있는 쿼리문이 있을까요.?

    >

    > aaa bbb ccc ddd xxx jjj

    > 1 2 3 4 8 8

    > 5 6 7 8 26 34

    > 9 10 11 12 42 76

    >

    > ㅜ.ㅜ 꼭즘 알려주세염..

    > 가능한지 불가능한지라도..(쿼리로.초보라. 좀 자세히 ㅜ.ㅜ)

    > 회사에 조금이라도 보템이 되기 위해 노력하는 바보 감자였습니다..

    > 언제나 질문에 답변해주시는 착한. 델 고수님들 감사합니다..

    > 언제나 행복하세염. 그럼 꾸벅... ^^

    > 저 밑에 가르쳐주신 분 정말 감사드립니다..ㅜ.ㅜ

    > 그래도 몰라서 다시 질문 올립니다 ㅠ.ㅜ..

    > 아..참고로 제가 쿼리 올릴께요.

    >

    > select a.jumin_no,a.cust_name,c.date,a.cust_name,b.oneday_too,b.oneday_toosu,b.too_ilsu,(b.oneday_too*b.oneday_toosu*b.too_ilsu) as aaa from cust a,jodc1 b,johc1 c

    > where a.chart_no=b.chart_no and a.cust_no=b.cust_no and a.c1_cnt=b.c1_cnt and

    > c.chart_no=b.chart_no and c.cust_no=b.cust_no and c.c1_cnt=b.c1_cnt and

    > c.date between '20000801' and '20000801' and

    > a.del='P' and

    > c.del='P' and

    > b.goods_name='코데날정(단일)' order by c.date

    >

    >

    > 요건데 이걸 쓰면

    >

    > jimin_no cust_name date onedat_too onedaytoo_su too_ilsu aaa

    > 8205221403827 델포이 20000801 1.5 1 2 3

    >

    > 요러케 나와요..

    >

    > 저 aaa 필드 뒤에다가 누적값을 넣어주는건데..ㅠ.ㅠ..

    > 합계는 나오니깐요..

    > 좀 도와주세여 ㅠ.ㅠ 조인을 하면서 해야하기 때문에..ㅠ.ㅠ.

    > 그럼 .. 언제나 행복하시구요.. 이글읽어주셔서 감사해요.. 그럼..꾸벅... *^.^*

    >

    >

    >