Q&A

  • 업체별 출고 및 입금내역 보기 (SQL)


개발환경.

Delphi5, ADOconnection, Access DB,



[Table 구조]

1. 업체 Table

ComID integer(일련번호) <- Primary Key

ComName String(30) //업체명

..., //기타필드.



2. 제품 Table

PrdID integer(일련번호) <- Primary Key

PrdName String(30) //제품명

..., //기타필드.



3. 출고 Table

ioSerial integer(일련번호) <- Primary Key

ioDate DateTime //출고 일자.

ComID integer(일련번호) <- FK(외부키) //업체 Table의 ComID

PrdID integer(일련번호) <- FK(외부키) //제품 Table의 PrdID

TotSu integer //출고수량

ioGum integer //출고금액

Remark String(30) //비고사항



4. 입금 Table

ioSerial integer(일련번호) <- Primary Key

ioDate DateTime //입금 일자.

ComID integer(일련번호) <- FK(외부키) //업체 Table의 ComID

ioGum integer //입금금액

Remark String(30) //비고사항



여기서 데이터가 다음이라 가정할 때



출고 테이블

ioSerial.....ioDate......ComID.......PrdID......TotSu.....ioGum.....Remark

==============================================================================

1............2000-02-03..1...........1..........100.......100,000...비고

2............2000-02-08..1...........1..........200.......200,000...비고

3............2000-02-12..1...........1..........100.......100,000...비고

4............2000-02-23..1...........1..........300.......300,000...비고





입금 테이블

ioSerial.....ioDate......ComID.......ioGum.....Remark

========================================================

1............2000-02-07..1...........100,000...비고

2............2000-02-20..1...........300,000...비고





다음 형태의 구조를 볼수있는 QUERY 문장을 부탁드립니다.

않되는 것인가요,,단, 새로운 테이블 생성 없이...



조인된 테이블

ioSerial.....ioDate......ComID.......PrdID......TotSu.....ioGum.....Remark

==============================================================================

1............2000-02-03..1...........1..........100.......100,000...비고

1............2000-02-07..1................................100,000...비고 < 입금

2............2000-02-08..1...........1..........200.......200,000...비고

3............2000-02-12..1...........1..........100.......100,000...비고

2............2000-02-20..1................................300,000...비고 < 입금

4............2000-02-23..1...........1..........300.......300,000...비고





UNION QUERY를 적용시 PrdID, TotSu등이 빠저요...



(SELECT ioSerial, ioDate, CustID, ioGum, Remark FROM PrdIO)

UNION (SELECT ioSerial, ioDate, CustID, ioGum, Remark FROM GumIO)

ORDER BY ioDate

...흑흑...



고수님들에 조언을...

2  COMMENTS
  • Profile
    하얀까마귀 2000.04.20 08:17
    안녕하세요 하얀까마귀 입니다...



    헉헉 질문 읽는다고 고생했다.. 헉헉~~ ( 엑세스님이 상세히 질문을 하셔서 그래도



    이해는 한것 같네요.. )



    엑세스님... 제가 엑세스 디비는 다루어 본적이 없어서.. 실제로 되는지는 잘 모르겠



    습니다만.. 그래도 제가 아는 방법을 말씀드릴께요... ( 엑세스님?? 어감이 좀



    이상타.. ^^;)



    > UNION QUERY를 적용시 PrdID, TotSu등이 빠저요...

    >

    > (SELECT ioSerial, ioDate, CustID, ioGum, Remark FROM PrdIO)

    > UNION (SELECT ioSerial, ioDate, CustID, ioGum, Remark FROM GumIO)

    > ORDER BY ioDate



    union 절을 사용하실때 이놈은 그냥 하나이상의 쿼리의 각 필드 타입과 길이만 맞추어



    주면 됩니다.. 다시 말해서 없는 필드는 만들어 넣으면 되죠...



    select ioSerial, ioDate, CustID, PrdID, TotSu, ioGum, Remark FROM PrdIO

    union

    select ioSerial, ioDate, CustID, ' ', 0 , ioGum, Remark FROM GumIO

    order by 2



    될겁니다...



    prdid가 문자형이고 totsu가 숫자형일때....



    결과의 필드명은 첫번째 쿼리의 필드명으로 들어가고.. 두번째의 놈은 맞춰 주면 되죠.



    여기서 조금만 응용하면 다른형태들도 가능하죠....



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



    ... 지발 엑세스 디비에서도 되기를.. ( 다시 말씀드리지만 엑세스에서 테스트 안해



    봤어요.. 디비엔진 몇가지 쓸때.. 해본거죠... )



    - 하얀까마귀 -















    ACCESS wrote:

    >

    > 개발환경.

    > Delphi5, ADOconnection, Access DB,

    >

    > [Table 구조]

    > 1. 업체 Table

    > ComID integer(일련번호) <- Primary Key

    > ComName String(30) //업체명

    > ..., //기타필드.

    >

    > 2. 제품 Table

    > PrdID integer(일련번호) <- Primary Key

    > PrdName String(30) //제품명

    > ..., //기타필드.

    >

    > 3. 출고 Table

    > ioSerial integer(일련번호) <- Primary Key

    > ioDate DateTime //출고 일자.

    > ComID integer(일련번호) <- FK(외부키) //업체 Table의 ComID

    > PrdID integer(일련번호) <- FK(외부키) //제품 Table의 PrdID

    > TotSu integer //출고수량

    > ioGum integer //출고금액

    > Remark String(30) //비고사항

    >

    > 4. 입금 Table

    > ioSerial integer(일련번호) <- Primary Key

    > ioDate DateTime //입금 일자.

    > ComID integer(일련번호) <- FK(외부키) //업체 Table의 ComID

    > ioGum integer //입금금액

    > Remark String(30) //비고사항

    >

    > 여기서 데이터가 다음이라 가정할 때

    >

    > 출고 테이블

    > ioSerial.....ioDate......ComID.......PrdID......TotSu.....ioGum.....Remark

    > ==============================================================================

    > 1............2000-02-03..1...........1..........100.......100,000...비고

    > 2............2000-02-08..1...........1..........200.......200,000...비고

    > 3............2000-02-12..1...........1..........100.......100,000...비고

    > 4............2000-02-23..1...........1..........300.......300,000...비고

    >

    >

    > 입금 테이블

    > ioSerial.....ioDate......ComID.......ioGum.....Remark

    > ========================================================

    > 1............2000-02-07..1...........100,000...비고

    > 2............2000-02-20..1...........300,000...비고

    >

    >

    > 다음 형태의 구조를 볼수있는 QUERY 문장을 부탁드립니다.

    > 않되는 것인가요,,단, 새로운 테이블 생성 없이...

    >

    > 조인된 테이블

    > ioSerial.....ioDate......ComID.......PrdID......TotSu.....ioGum.....Remark

    > ==============================================================================

    > 1............2000-02-03..1...........1..........100.......100,000...비고

    > 1............2000-02-07..1................................100,000...비고 < 입금

    > 2............2000-02-08..1...........1..........200.......200,000...비고

    > 3............2000-02-12..1...........1..........100.......100,000...비고

    > 2............2000-02-20..1................................300,000...비고 < 입금

    > 4............2000-02-23..1...........1..........300.......300,000...비고

    >

    >

    > UNION QUERY를 적용시 PrdID, TotSu등이 빠저요...

    >

    > (SELECT ioSerial, ioDate, CustID, ioGum, Remark FROM PrdIO)

    > UNION (SELECT ioSerial, ioDate, CustID, ioGum, Remark FROM GumIO)

    > ORDER BY ioDate

    > ...흑흑...

    >

    > 고수님들에 조언을...

  • Profile
    ACCESS 2000.04.20 21:43
    덕분에 모든 문제가 해결되였읍니다.



    며칠동안 해결책을 찾다가 겨우 CalcField를 써서 해결하긴 했지만

    속도가 너무 늦더라고요.



    님께서 알려주신 방법은 훌륭하게 AccessDB에서도 잘 작동합니다.



    다시 진심으로 감사드립니다.

    • 델초보
    • 2000.04.20 14:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 뎐세
      2000.07.15 18:51
      Thread를 사용하시는게 좋겠네요. 먼저 Thread unit을 하나 만들구요. anyThread = class(TThread) ...
    • 강민주
      2000.04.20 10:34
      이진수 wrote: > dbgrid에서 현재 table의 전체 레코드들이 존재하는 상태에서 화면에 나타나는 레코드만...
    • Mr.Q
    • 2000.04.20 09:36
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 2000.04.20 21:09
      Mr.Q wrote: > date나, now는 2000년을 00년으로 표현해주는데, > 자신의 나이를 빼서, 출생년도를 구하...
    • 강민주
      2000.04.20 09:50
      Mr.Q wrote: > date나, now는 2000년을 00년으로 표현해주는데, > 자신의 나이를 빼서, 출생년도를 구하...
    • 조규춘
      2000.04.20 09:51
      Mr.Q wrote: > date나, now는 2000년을 00년으로 표현해주는데, > 자신의 나이를 빼서, 출생년도를 구하...
    • mad
    • 2000.04.20 09:19
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강민주
      2000.04.20 09:47
      mad wrote: > 안녕하세요. > 이틀째 입니다. 이문제로 고생하고 있는 것이 쩝~ > 제가 할려는 것은 테이...
    • mad
      2000.04.21 10:44
      필터를 찾아봤지만 책에는 날짜형과 문자형이 비교대상이 되지 않아요. 에러가 뜹니다. 이것을 보시고 생...
    • 조규춘
      2000.04.20 09:43
      어린왕자 wrote: > 안녕하세요..손댈데 많은 델초보 어린왕자입니다. > 도움말을 보다가..파스칼문법이 ...
    • 최용일
      2000.04.20 07:14
      안녕하세요. 최용일입니다. 이런건 조금만 생각해보면 하실수 있을텐데요... 일단은 for문으로 돌려야겠...
    • 냉이
    • 2000.04.20 06:48
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Mr.Q
      2000.04.20 12:21
      냉이 wrote: > 안녕하세요.. 저는 이제서야 델파이를 배우기 시작한 초보입니다.. > edit박스에서 입력받...
    • 최용일
      2000.04.20 07:17
      안녕하세요. 최용일입니다. 메세지박스를 띄울땐 ShowMessage함수를 이용합니다. 예) ShowMessage('이 ...
    • 박정용
      2000.04.21 22:49
      아주 간단한건데.. 어떻게 하냐면요 델파이의 오브젝트 인스펙트창에서 보면 각각의 컴포넌트마다 cursor...
    • 하얀까마귀
      2000.04.20 07:46
      안녕하세요 하얀까마귀 입니다.. CM_MOUSELEAVE, CM_MOUSEENTER 메시지를 이용하시면 마우스가 콘트롤 ...
    • 하얀까마귀
      2000.04.20 07:54
      안녕하세요 하얀까마귀 입니다.. 질문하신게 마치 스토어드 프로시져 같네요... 후후 지금 말씀하신 ...
    • 초보
    • 2000.04.20 05:30
    • 0 COMMENTS
    • /
    • 0 LIKES
    • Mr.Q
      2000.04.20 05:11
      어린왕자 wrote: > 안녕하세요..델피언님들.. > 오늘두 질문 하나할께요.. > 커서가 스트링그리드 한셀...
    • 어린왕자
      2000.04.20 06:32
      Mr.Q wrote: > 어린왕자 wrote: > > 안녕하세요..델피언님들.. > > 오늘두 질문 하나할께요.. > > 커서...
    • 어린왕자
      2000.04.20 06:55
      스트링그리드의 에디트모드가 True가 되었을때 성공하더라구요.. 어린왕자 wrote: > Mr.Q wrote:...
    • 이치형
      2000.04.20 03:20
      초보 wrote: > 변수값(문자형)을 리스트박스에 5번 출력되게 하는건데, 잘 모르겠어요. 안녕하세요? 아...
    • 깨구르
    • 2000.04.20 02:56
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 병규
      2000.04.20 04:39
      안녕하세요.. 메모란을 False로 하지 마시고 속성창에서 ReadOnly를 TRUE로 하세요.. 그렇게 하시면 같은 ...
    • 이치형
      2000.04.20 03:16
      깨구르 wrote: > 사정상 Meme의 Enabled를 false로 했는데 그 안에 적어진 > 글자의 색깔을 바꿀순 없나...
    • Mr.Q
      2000.04.20 05:18
      초보운전 wrote: > 델파이 함수 중에 Trim 이란거 있죠.. > > 이 함수좀 자세히 설명해 주실분 없나요?...
    • ACCESS
      2000.04.20 02:45
      초보운전 wrote: > 델파이 함수 중에 Trim 이란거 있죠.. > > 이 함수좀 자세히 설명해 주실분 없나요?...
    • 이치형
      2000.04.20 03:27
      ACCESS wrote: > 초보운전 wrote: > > 델파이 함수 중에 Trim 이란거 있죠.. > > > > 이 함수좀 자세...
    • ACCESS
    • 2000.04.20 02:20
    • 0 COMMENTS
    • /
    • 0 LIKES
    • ACCESS
    • 2000.04.20 02:19
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.04.20 08:17
      안녕하세요 하얀까마귀 입니다... 헉헉 질문 읽는다고 고생했다.. 헉헉~~ ( 엑세스님이 상세히 질문을 ...
    • ACCESS
      2000.04.20 21:43
      덕분에 모든 문제가 해결되였읍니다. 며칠동안 해결책을 찾다가 겨우 CalcField를 써서 해결하긴 했지만...
    • 이치형
      2000.04.20 03:06
      차니 wrote: > DB를 두개 열고 싶은데여... > open하면 똑같은 디비가 열리는데 무엇이 잘못되었는쥐 모...
    • 최현수
    • 2000.04.20 02:07
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 강민주
      2000.04.20 02:20
      최현수 wrote: > 안녕하세요. > 흠, 요앞 제가올린 프린트 문제는 아무도 답을 해주시지 않는 군요. > ...
    • 최현수
      2000.04.20 02:45
      강민주님께서 답해주신대로 하니까.. 아래 코드에서 label1.Caption := format('#,0',[1234567]); 결...
    • 강민주
      2000.04.20 03:12
      에구 실수.. str := FormatFloat(' #,0', [Value]); 이렇게 하세요.. ^^;