Q&A

  • Query좀 부탁합니다.
SQL2000 server에서 한테이블에서 코드별로 전일까지의 누계와 금일금액을 동시에 쿼리 할 수 있습니까?  죄송합니다. 실력이 좀 딸려서....
아래에서 조건이름을 어떻게 하면 되겠는데.....

select acode, aname, T.a_kum S2, akum
From Table1, (select sum(akum)  a_kum from Table1 where aday < '20021206' and acode = '조건이름') T
where aday = '20021207'


Table1
aday            날짜
acode          코드
aname         이름
akum           금액

20021205  01 서울  10000
20021205  02 부산  15000
20021205  03 경기  20000
20021206  01 서울  20000
20021206  02 부산  10000
20021206  03 경기  15000
20021207  01 서울  30000
20021207  02 부산   5000
20021207  03 경기  12000
20021207  04 제주  12000

결과값
코드    이름    전일까지누계   금일금액
01       서울              30000        30000
02       부산              25000          5000
03       경기              35000         12000
04       제주                    0         12000      


4  COMMENTS
  • Profile
    열심히 2002.12.10 04:06
    select acode, aname, T.a_kum S2, akum
    From Table1,
             (select sum(akum)  a_kum from Table1 where aday < '20021206' and acode = '조건이름') T
    where aday = '20021207'

    근데 20021206일 전에꺼를 몽땅 더하나요?? 자료가 많으면 곤란한데...

    위에꺼를 바꾸면 아래와 같이...바꿀려고 했는데...

    좀이상한게 있네요..하루에 같은 acode는 하나바께 자료가 없나요??
                              (전 있다고 가정할랍니다.)
    같은 테이블 두개 쓰신건 좋은데 이렇게 쓰게 된다면 어느쪽으로 아웃조인을
    거실건지 확실히 하셔야 합니다..둘중에 하나라도 자료가 있으면 나와야 하자
    나요??(둘중:누계와 오늘금액)이렇게 쿼리를 짜면 안되구요.

    acode가 정의 되어있는 테이블이 있습니까 가령 이렇게 생긴.....
    (밑에 한글명이 있는걸보니 없을듯...)

    acode_table
    acode aname
    01       서울
    02       부산
    03       경기
    04       제주

    위와 같은 테이블이 하나 있어야 합니다.

    이런 테이블구조가 맞겠죠..

    그리하여..

    select A.acode, A.aname, C.a_kum , B.a_kum_now
    From  acode_table A,
             (select sum(akum) a_kum_now from Table1 where aday = '20021207') B,
             (select sum(akum)  a_kum from Table1 where aday < '20021206' and acode = '조건이름') C
    where A.acode = B.acode(+)
    and    A.acode = C.acode(+)  <- 오라클 문법 아웃조인

    이처럼 구함 될것같네여..

    만약에 이렇게 짠다면???

    select B.acode, B.aname, C.a_kum , B.a_kum_now
    From  
             (select sum(akum) a_kum_now from Table1 where aday = '20021207') B,
             (select sum(akum)  a_kum from Table1 where aday < '20021206' and acode = '조건이름') C
    where B.acode = C.acode(+)

    만약에 이와 같이 쿼리를 짜신다면 20021207일로 특정지역에 들어온 자료가
    없다면 누계가 있어도 누계는 보이지 않게 됩니다. 반데로 잡아도 마찬가지입니다..그래서 항상 자료가 존재하는 코드 테이블을 기준으로 잡는거지요..

    쿼리에 불가능이란 없다...크하하하핳하하...

  • Profile
    Wookey 2002.12.10 18:08
    감사합니다.
    질문만 던져 놓고 바쁜일이 있어 감사하다는 답변이 늦었습니다.
    그런데요. from 다음의 acode하고 앞의 select의 acode하고 어떻게
    조건에서 조인을 시키는지가 궁금합니다.
    답변에서는 그냥 '조건이름'이라고만 적혀 있어서.....
    바쁘시더라도 한번만 더 부탁드릴께요....
    죄송합니다.


  • Profile
    열심히 2002.12.12 22:56
    select B.acode, B.aname, C.a_kum , B.a_kum_now
    From  
             (select acode, sum(akum) a_kum_now from Table1 where aday = '20021207' Group by acode) B,
             (select acode, sum(akum)  a_kum from Table1 where aday < '20021206' Group by acode) C
    where B.acode = C.acode(+)

    죄송합니다 이거 잘못 됐네요..위처럼 바꿔야 돼네요..

    요즘 정신이 이렇게 없어서...



  • Profile
    Wookey 2002.12.14 22:07
    감사합니다.  해결되었습니다.
    • 미러
    • 2002.12.10 06:05
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 남양원
      2002.12.10 12:23
      var   str: string; ...   str := '1000*10asbsdf...';   str := Copy(...
    • 미러
      2002.12.10 18:38
      헉스....제가 잘못 썼군요... interbase에서 stored procedure로 하려고 하거든요.. 10000*10%내역..... ...
    • 열심히
      2002.12.11 00:15
      스토드 프로시져도 마찬가지 아닌가요?? 지금 그줄을 변수에 집어넣고 루핑을 돌리면서 '*' 를 찾는...
    • 김상수
    • 2002.12.10 06:04
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 열심히
      2002.12.11 00:07
      저도 그런적이 있는데 저는 지금 델파이 4쓰거든요??? 더 높은버젼에서도 그런지는 모르겠네요... 전...
    • 김수경
      2002.12.10 07:24
      6번 Line에서 오류가 발생한 것으로 보아 Delphi로 변환할 때 오류가 있지 않았나 생각됩니다. 관련...
    • 김재욱
    • 2002.12.10 06:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.12.10 08:24
      안녕하세요. 최용일입니다. Rewrite로 파일열어서 저장하시면 됩니다. ^^ 항상 즐코하세요...
    • 김수경
      2002.12.10 07:41
      님이 쓴 글은 어느 Component의 Inerface 부분만 있군요. Component를 설치하신후 예제(더 아래쪽 부분)...
    • 김수경
      2002.12.10 07:32
      죄송! 글이 2번 올라 갔는데 삭제가 안되네요. ㅡㅡ;
    • 조승식
      2002.12.10 07:42
      조언 고맙습니다. 꾸벅...^^ 한번더 찾아 볼랍니다.  근데...델파이 3.0에서는 문제 없이 되...
    • 하기
      2002.12.10 06:56
      꼭 DATE로 비교를 하셔야 하나요? 질문을 보니 Date가 Text로 되어있는것 같은데... 같은 Format형식이면...
    • Wookey
    • 2002.12.10 03:39
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 열심히
      2002.12.10 04:06
      select acode, aname, T.a_kum S2, akum From Table1,        &nbs...
    • Wookey
      2002.12.10 18:08
      감사합니다. 질문만 던져 놓고 바쁜일이 있어 감사하다는 답변이 늦었습니다. 그런데요. from 다음의 ac...
    • 열심히
      2002.12.12 22:56
      select B.acode, B.aname, C.a_kum , B.a_kum_now From        &n...
    • Wookey
      2002.12.14 22:07
      감사합니다.  해결되었습니다.
    • 박동호
    • 2002.12.10 03:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2002.12.10 20:18
      어떻게 하면 무한루프 도는 루틴을 찾아낼 수 있나 하는 질문이신가요? 그 유닛이 의심되신다면, 유닛의...
    • 이상협
    • 2002.12.10 02:39
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 호롱불
      2002.12.10 04:13
      1) var getvalue:integer; . . 2) params[2].asinteger:=getvalue; 3) execsql; . . 1번 문장에서...
    • 이상협
      2002.12.10 04:48
      공부하던 source 올립니다. test해 보시고 어느부분이 잘못되었는지 좀 부탁드립니다.
    • 이상협
      2002.12.10 04:30
      getvlaue:integer; 이거 error 나서 제가 그냥 만든거거든요 비슷한 맥락으로 아래 프로그램 error 안나게...
    • 열심히
      2002.12.10 03:34
      스텝을 밟아서 어디인지 알려주심 고마울텐데.. 그리고 너무짧은데염..더 필요한데염.. 소스안에 getva...
    • 이상협
      2002.12.10 03:57
      있잖아요 위의 4번째 줄에서 에라나요 아마도 그내용을 입력하지 못하나본데요 userid &nbs...
    • 열심히
      2002.12.10 04:15
      님이 지금 쓰신 dm에 있는 Qryupdate있지 않습니까.. 이TQuery에 필드가 올려져 있는지 봐주실래요.. 올...
    • 김용섭
    • 2002.12.10 02:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.12.10 08:25
      안녕하세요. 최용일입니다. 팁이나 질답게시판에서 근접검색으로 찾아보시면 답이 있을겁니다... ^^ ...
    • 이상협
    • 2002.12.10 02:03
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이상로
      2002.12.13 21:27
      델파이의 Demo를 보면 확인 가능 하십니다... Query의 properties에 보면 SQL이라는게 있습니다.. 그곳...
    • 열심히
      2002.12.10 04:09
      헉 그런 내용은 아무책이나 뒤져봐도 나올텐데... BDE설정 되있으면 방법은 비슷하지 않나요??비슷 할텐...
    • 최용일
      2002.12.10 03:14
      안녕하세요. 최용일입니다. 보내는 부분하고 받는 부분하고 다르네요... 그래서 TimeOut걸려서 멈추는거...
    • 장기륜
      2002.12.10 03:37
      답변 감사합니다 ^^* 아직은 안해봤지만.. 그런경우를 생각을 못해보았네요.. 같은 프로세서에서 돌아가...
    • 김계환
    • 2002.12.10 01:09
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 길병욱
    • 2002.12.10 00:33
    • 3 COMMENTS
    • /
    • 0 LIKES
    • LuckyBoy
      2002.12.10 01:13
      각 값뒤에 #13값을 넣어보세요.. 예를들어 sCode := sCode + #13; 이렇게 넣으면 Enter 값이 들어갑니...
    • 길병욱
      2002.12.10 03:04
      위의 답변데로 했느데요..확인해보니 엔터는 아니구 이상한기호(노래음표)만 들어가 있더라구요.. 암튼 ...
    • 최용일
      2002.12.10 03:32
      안녕하세요. 최용일입니다. #13대신에 #13#10을 넣어보세요... ^^ 항상 즐코하세요...
    • 김재환
    • 2002.12.10 00:27
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2002.12.10 01:35
      45만건의 레코드라면, mdb로서는 한계에 닿았다고 볼 수 있지 않나 싶네요. RDB에서야 인덱스를 이용하...
    • 김재환
      2002.12.10 02:23
    • ㉿ 이영범
      2002.12.10 00:55
      XL.Range['A:D'].NumberFormat   := '@';   --> 문자형 XL.Range['G:H'].NumberFo...
    • Inoak
    • 2002.12.09 23:01
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김해우
      2002.12.10 01:24
      이렇게 사용하시면 됩니다.. 두움말 참조하시면 되구요. var    F : Extended; begin &n...
    • 머슴
      2002.12.09 23:55
        FormatFloat라는 함수가 있습니다..   형식은  아래와 같고요 반환값...
    • 최용일
      2002.12.10 03:31
      안녕하세요. 최용일입니다. 그 프로그램을 ActiveX로 만드시면 웹브라우저에서도 볼 수 있습니다... ...
    • 도니
    • 2002.12.09 20:47
    • 0 COMMENTS
    • /
    • 0 LIKES