Q&A

  • 월계. 누계 산출법을 알고 싶습니다.
안녕하세요

여기서 많은 도움을 받고 있는 초보입니다.

select 입고일, 품목, 수량 as 입고, null as 출고 from 입고01
where 입고일 >= :dt1 and 입고일 <= :dt2');
ParamByName('dt1').asdatetime := Medit1.Date;
ParamByName('dt2').asdatetime := Medit2.Date;
union all
select 출고일, 품목, null as 입고, 수량 as 출고 from 출고01
where 출고일 >= :dt1 and 출고일 <= :dt2');
ParamByName('dt1').asdatetime := Medit1.Date;
ParamByName('dt2').asdatetime := Medit2.Date;
order by 1

위의 방법으로 코딩하니까 월간 내역은 잘 나옵니다.

월계 및 누계를 산출하는 방법을 모르겠습니다.

검색해서 서브쿼리 여러가지 방법을 도입했는데 자꾸 에러만 나옵니다.

도대체 어떻게 해야할지 아무생각도 안납니다.

디비는 엑세스 입니다.

제가 얻고자 하는 출력물은

품 목 : XXX
---------------------------------------------------
   일  자       입고수량     출고수량   재고수량
---------------------------------------------------
2004.1. 1         100    

2004.1. 5                           50

----------------------------------------------------
월계                   100            50           50
-----------------------------------------------------
누계                   100            50           50
-----------------------------------------------------

이런식으로 월별로 출력을 얻고자 합니다.

고수님들의 작은 답변이 저에게는 아주 큰 힘이 됩니다.

도와주세요~~

감사합니다.
3  COMMENTS
  • Profile
    이중철 2005.02.12 09:21
    select sum(수량) as 입고 ......
    만약 입고와 출고를 같이 나오게 할려면 상호 Outer join해야 하는데
    구문 까먹었음
    만약, 월간구분이 있을경우 Group by절에 넣어서 사용을 추천
    Having은 상황봐서 하세요

  • Profile
    김종현 2005.02.12 21:45
    답변 고맙습니다.

    죄송한데 제가 완전 초보라서 그러니 좀 자세하게 가르쳐주심 안될까요?

    너무 막막합니다

    도와주세요.......

  • Profile
    nilriri™ 2005.02.14 21:46
    RDBMS가 오라클 8i이상이라면 쿼리 한번으로 합계 누계까지 가능할껍니다.

    물론 다른 디비라도..union all을 이용하면 가능하겠죠..위에분 답변처럼..


    하지만 그것보다는 레포트 상에서 합계와 누계처리를 하시면 될거 같은데요..

    퀵레포트라고 가정하고..


    ------------------------------------
    컬럼헤더벤드
    -----------------------------------
    그룹헤더벤드                           <- 보통은 이벤드는 높이를 0으로 해서 안보이게 하거나..
                                                      컬럼헤더를 안보이게 하고..그룹이 다시 시작될때 새페이지에서
                                                      인쇄되게 한경우라면 컬럼헤더를 대신해도 됩니다.
    -----------------------------------
    디테일 벤드
    -----------------------------------
    그룹푸터벤드                          <-  여기에 월계를...
    -----------------------------------
    서머리벤드                             <- 여기에 누계를 출력하시면 됩니다..
    -----------------------------------

    qrexpression  이라는 컴포넌트가 있을겁니다...(기억을 더듬다보니.정확한 명칭이..ㅡㅡ;)
    이 컴포넌트의 expression에다가.. sum(필드명) 해주시고..format속성에.. #,##0 이런식으로..
    기타등등...속성 설정하시구요..

    중요한거...    

         합계와 누계위치의 벤드에 똑같이 하나씩 만들되...
         속성에 보시면 after print reset  비슷한 속성이 있습니다...  출력후 초기화 할꺼냐는 거죠..
         합계에는 이걸 true로 해주시면..매 그룹이 바뀔때마다 그룹합계가 찍힙니다..(예를 들어 월계)
         누계에는 이걸 false로 해주시면 모든 디테일벤드 컬럼에 대한 합계가 되기때문에 누계가 되는거죠..

    그룹헤더 벤드의 expression에는...   copy(날짜필드,1,6) 이정도로 해주면..년도별 월별로 그룹이 지어지겠죠?

    그리고 퀵레포트에 연결된 data를 들고오는 쿼리는 저 날짜필드 순으로 정렬이 되어있어야 하구요..^^

    대충 이렇습니다..

    한번 해보세요...의외로 간단합니다..

    그럼..


    • 신재민
    • 2005.02.13 09:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 히히
      2005.02.14 20:08
      Form에서 보면 KeyPreView가 있습니다. 이넘을 True 로 주면 키보드 Input을 Edit보다 Form의 KeyDown에서...
    • 깜장곰
    • 2005.02.13 02:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.02.14 21:26
      안녕하세요. 최용일입니다. 메인폼의 OnCreate이벤트에서 아래와 같이 해보세요... procedure TForm1...
    • 김상균
      2005.02.12 18:39
          TPanel((Sender as TImage32).Parent).Color := clActiveCaption;
    • 이중철
      2005.02.14 18:04
      지금 보면 ImgCenter의 Parent를 설정하지 않았네요 설정하지 않으면 (Sender as TImage32).Parent는 nil...
    • nilriri™
      2005.02.12 10:36
      '파일 다운로드' 라는 제목의 윈도우가 생성되는지 감시했다가 핸들값을 얻어다가...프로세스를kill하시면 ...
    • 송인화
    • 2005.02.12 05:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2005.02.12 09:15
      strText[1] => A strText[2] => B strText[3] => C 어떤것을 원하나요? for i := 1 to Leng...
    • 송인화
      2005.02.12 18:18
      답변 감사합니다. ^^ 즐거운 주말 보내세요~
    • 김종현
    • 2005.02.12 03:50
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2005.02.12 09:21
      select sum(수량) as 입고 ...... 만약 입고와 출고를 같이 나오게 할려면 상호 Outer join해야 하는데 ...
    • 김종현
      2005.02.12 21:45
      답변 고맙습니다. 죄송한데 제가 완전 초보라서 그러니 좀 자세하게 가르쳐주심 안될까요? 너무 막막...
    • nilriri™
      2005.02.14 21:46
      RDBMS가 오라클 8i이상이라면 쿼리 한번으로 합계 누계까지 가능할껍니다. 물론 다른 디비라도..union a...
    • 송인화
    • 2005.02.11 22:57
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 히히
      2005.02.11 23:49
      ClientSocket의 OnError 이벤트 핸들러를 다음과 같이..... procedure TForm1.ClientSocket1Error(Sende...
    • 송인화
      2005.02.12 02:16
      안녕 하세요.. 답변 감사 드립니다.. OnError 이벤트를 처리하니깐.. 알수가 있더군요.. 한가...
    • 채팅
      2005.02.12 14:52
      clientSocket은 NonBlocking소켓입니다. 그래서 일단 Open메소드를 부르면 연결이 성공하든 실패하든 다음...
    • 송인화
      2005.02.12 19:42
      안녕 하세요.. 답변 감사 드립니다... ClientSocket은 NonBlocking소켓이라구 하셨는데요.. &...
    • kivalan
    • 2005.02.11 22:55
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.02.14 08:03
      안녕하세요. 최용일입니다. WaveOutOpen (@FHandle,FDeviceID,FFmtChooser.WaveFormatEx,DWORD(@WaveOut...
    • kivalan
      2005.02.15 05:01
      계속 답변을 달아 주시는데 고맙고 죄송합니다. 잘 이해가 안가서요.. acmFormatChoose(fc) 넵 이 함수...
    • 최용일
      2005.02.15 17:55
      안녕하세요. 최용일입니다. 몇번 말씀을 드렸는데... 이해를 못하시네요... ㅠㅠ waveInOpen할때 필...
    • kivalan
      2005.02.16 04:40
      앗 이제애 이해를 했ㄴ요. waveInOpen 인자가 타입형포인터줄 알고 헷갈려 했습니다. TACMFormatChooser....
    • 남경만
    • 2005.02.11 17:52
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 남경만
      2005.02.13 02:50
      덕분에 쉽게 끝낼 수 있게 되었네요... ㅎㅎㅎ 저도 어여 질문만 하는 사람이 아니고.. 여러분처...
    • 강재규
      2005.02.12 20:35
      제일 간단한 방법인거 같아서 올립니다. Quickrep1의 Properties에 보시면 Page가 있어요... 거기에 Colu...
    • nilriri™
      2005.02.11 23:10
      기존에 하시던것처럼. 디자인을 하신다음에.. qrdbtext컴포넌트를 놓으시고 데이터셋과 필드명을 연결해...
    • kivalan
      2005.02.11 22:21
      젤 좋은 방법은 퀵레포트에서 다단 출력을 지원하는 것이겠지만요.(이부분은 좀 확인이 필요합니다). 간...
    • 김진태
    • 2005.02.10 07:15
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 델티즌
      2005.02.11 09:14
      자주 실수하는 부분이죠. 변수가 문자인 경우는 문자열이 아닌 문자로 취급해야 합니다. case &nb...
    • 김영미
      2005.06.01 21:01
      한참 헤메다가 답변하신 부분 참조합니다. 정말 감사합니다. 항상 행복하시길 빕니다.( __)꾸벅.
    • kivalan
      2005.02.11 05:33
      말그대로 Ordinal type required 순서적인 값을 가지고 있는 타입만 가능하네요. var abc: Char; begin ...
    • nilriri™
      2005.02.11 23:02
      indy 컴포넌트를 이용하시면 좀더 간단할거 같습니다. 꼭 웹브라우져 컨트롤을 사용하셔야 한다면 행...
    • 이재현
      2005.02.12 10:00
      우선 답변 감사드립니다. ^^; 그렇게 간단한거라면 질문을 올리지 않았죠.. ^^;; 자답 입니다.. ^^; ...
    • nilriri™
      2005.02.12 10:48
      그런 방법도 있었군요...^^; 감사합니다... 보통은 자신만 알고 넘어가버리기 쉬운데...힘들게 알아 내...
    • 박지용
      2005.02.11 19:56
      TThread.OnTerminate Even를 사용하시면 될 것 같네요...^^ 그럼.
    • 파멸의슬픔
      2005.02.11 21:03
      간단 예제 올려드려요... 보시구 하세엽 그럼 이만~
    • 김상균
    • 2005.02.08 04:22
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 난 백만당적이다.
      2005.02.08 01:02
      goEdit를 True로 한 다음 OnCanEditCell 이벤트에서 CanEdit 를 False로 하면 됩니다.  ...
    • 이소룡
    • 2005.02.07 17:48
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 델티즌
      2005.02.08 10:16
      2003에서 이상한 현상들이 많이 발생하고 있습니다. 꼭 델파이의 문제는 아니듯 싶습니다. 2003 서비스팩...
    • 김춘수
      2005.02.07 22:44
      2003에 사용하는데 전혀 이상무입니다. 델파이7, 5 모두 사용 혹시 델파이 원본이 이상한것 아닐까요 ...
    • 난 백만당적이다.
      2005.02.07 20:06
      테이블은 단지 보여지는 기능만 하게 하구요... 저장은 쿼리로 하면 문제가 해결될것같은데요.... 여러개...
    • 무심코
      2005.02.07 22:15
      첨에 델파이를 쓸때 저도 이부분에 대해서 무척 고민에 빠졌습니다. DataSource.AutoEdit 를 false 로 해...