Q&A

  • 재고관리...
메뉴테이블, 재료테이블,재료입력테이블, 판매테이블이 있습니다. (식당관련)

메뉴테이블에는 음식에 관한 정보들이 있고, 재료테이블에는 각 음식에 들어가는 재료(돼지고기, 마늘, 양파, 감자...)에 대한 정보와 재료의 재고정보를 가지고 있습니다.

재료입력테이블에는 메뉴테이블에 있는 각 음식에 얼만큼의 재료가 들어가는지 입력을 합니다.



예)

<재료입력테이블> <재료테이블>

음식명 재료번호 수량 재료번호 재료명 재고량

------------------------ ---------------------------

불고기 1111 50 1111 돼지고기 100

불고기 2222 10 2222 양파 2

불고기 3333 10 3333 양념 10



여기서 재료입력테이블은 음식명과 재료번호가 기본키이고 재료테이블은 재료번호가 기본키입니다. 그리고 판매테이블은 판매번호가 기본키이고 음식명을 가지고 있습니다. (이해가 되셨는지?)



여기서 구현하고 싶은 것은 음식이 판매가 되었을 때 각 재료의 재고가 계산되도록 하는 것입니다. 보시다시피 한가지 음식에 관련된 재료가 여러가지입니다.



저는 이렇게 할려고 했는데 잘 안되는군요.

판매테이블의 음식명을 가지고 재료입력테이블의 재료번호를 찾아서 수량을 가지고 옵니다. 이 수량에 판매테이블의 판매된 음식수량을 곱한뒤 재료테이블의 재고량에서 빼는거죠. 그런데 재료입력테이블에서 한 음식에 들어가는 재료가 한가지이면 간단한데 여러가지라 그게 잘 안되는군요.



좋은 방안 있으시면 부탁드립니다.



2  COMMENTS
  • Profile
    신호성 1999.06.04 22:46
    박성훈 께서 말씀하시기를...

    > 메뉴테이블, 재료테이블,재료입력테이블, 판매테이블이 있습니다. (식당관련)

    > 메뉴테이블에는 음식에 관한 정보들이 있고, 재료테이블에는 각 음식에 들어가는 재료(돼지고기, 마늘, 양파, 감자...)에 대한 정보와 재료의 재고정보를 가지고 있습니다.

    > 재료입력테이블에는 메뉴테이블에 있는 각 음식에 얼만큼의 재료가 들어가는지 입력을 합니다.

    >

    > 예)

    > <재료입력테이블> <재료테이블>

    > 음식명 재료번호 수량 재료번호 재료명 재고량

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

    > 불고기 1111 50 1111 돼지고기 100

    > 불고기 2222 10 2222 양파 2

    > 불고기 3333 10 3333 양념 10

    >

    > 여기서 재료입력테이블은 음식명과 재료번호가 기본키이고 재료테이블은 재료번호가 기본키입니다. 그리고 판매테이블은 판매번호가 기본키이고 음식명을 가지고 있습니다. (이해가 되셨는지?)

    >

    > 여기서 구현하고 싶은 것은 음식이 판매가 되었을 때 각 재료의 재고가 계산되도록 하는 것입니다. 보시다시피 한가지 음식에 관련된 재료가 여러가지입니다.

    >

    > 저는 이렇게 할려고 했는데 잘 안되는군요.

    > 판매테이블의 음식명을 가지고 재료입력테이블의 재료번호를 찾아서 수량을 가지고 옵니다. 이 수량에 판매테이블의 판매된 음식수량을 곱한뒤 재료테이블의 재고량에서 빼는거죠. 그런데 재료입력테이블에서 한 음식에 들어가는 재료가 한가지이면 간단한데 여러가지라 그게 잘 안되는군요.

    >

    > 좋은 방안 있으시면 부탁드립니다.

    >



    먼저 결론부터 말씀드리면 박성훈씨의 생각대로 한번에 해결할 수 있습니다.



    위 예시자료에서 재료테이블의 재고량이 부족하여 적절하지는 않지만

    불고기를 2인분 판매하였다고 가정하면 소요재료량은 아래와 같을것입니다.

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

    1111 돼지고기 100 (단위소요량 50 * 2)

    2222 양파 20 (단위소요량 10 * 2)

    3333 양념 20 (단위소요량 10 * 2)

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



    이는 박성훈씨 께서 생각하신 방법과 같이 판매테이블의 음식명으로 재료입력

    테이블과 조인하면 얻을 수 있는 결과 입니다.

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

    SELECT 판매테이블.판매량 * 재료입력테이블.재료량

    FROM 판매테이블

    LEFT OUTER JOIN 재료입력테이블 ON 판매테이.음식명 = 재료입력테이블.음식명

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



    상기 결과값을 재료테이블의 재고량에서 감해주면 원하는 결과를 얻을 수 있습니다.

    Query 컴포넌트를 이용하여 아래와 같이 SQL을 작성한 뒤 실행해 보십시요.

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

    UPDATE 재료테이블 SET 재고량 = 재고량 -

    (SELECT 판매테이블.판매량 * 재료입력테이블.재료량

    FROM 판매테이블

    LEFT OUTER JOIN 재료입력테이블 ON 판매테이블.음식명 = 재료입력테이블.음식명

    WHERE 재료입력테이블.재료번호 = 재료테이블.재료번호

    )

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

    단 위와 같이 SQL을 작성하여 실행하면 판매테이블의 모든 판매실적을 기준으로 재고량을 감산하기 때문에 WHERE 조건에 특정 판매건의 조건을 추가하셔야합니다.

    판매테이블의 키 항목을 알려주지 않아 예를 들 수 없지만 아래와 같은 개념으로 추가해 주세요

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

    UPDATE 재료테이블 SET 재고량 = 재고량 -

    (SELECT 판매테이블.판매량 * 재료입력테이블.재료량

    FROM 판매테이블

    LEFT OUTER JOIN 재료입력테이블 ON 판매테이블.음식명 = 재료입력테이블.음식명

    WHERE 재료입력테이블.재료번호 = 재료테이블.재료번호

    AND 판매테이블.키값 = :키값

    )

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





















  • Profile
    신인재 1999.06.04 04:49
    일딴 질문의 요지를 모르겠군요...말씀하신것을 보면

    일딴 프로그램적인 로직은 다 서있으신거 같은데.....

    해보신 코딩을 올려 주셔야 무엇이 문제인지 알 수 있습니다.

    이런식으로 서술을 하시면 답변을 드리기가 좀 곤란하거든요..





    박성훈 께서 말씀하시기를...

    > 메뉴테이블, 재료테이블,재료입력테이블, 판매테이블이 있습니다. (식당관련)

    > 메뉴테이블에는 음식에 관한 정보들이 있고, 재료테이블에는 각 음식에 들어가는 재료(돼지고기, 마늘, 양파, 감자...)에 대한 정보와 재료의 재고정보를 가지고 있습니다.

    > 재료입력테이블에는 메뉴테이블에 있는 각 음식에 얼만큼의 재료가 들어가는지 입력을 합니다.

    >

    > 예)

    > <재료입력테이블> <재료테이블>

    > 음식명 재료번호 수량 재료번호 재료명 재고량

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

    > 불고기 1111 50 1111 돼지고기 100

    > 불고기 2222 10 2222 양파 2

    > 불고기 3333 10 3333 양념 10

    >

    > 여기서 재료입력테이블은 음식명과 재료번호가 기본키이고 재료테이블은 재료번호가 기본키입니다. 그리고 판매테이블은 판매번호가 기본키이고 음식명을 가지고 있습니다. (이해가 되셨는지?)

    >

    > 여기서 구현하고 싶은 것은 음식이 판매가 되었을 때 각 재료의 재고가 계산되도록 하는 것입니다. 보시다시피 한가지 음식에 관련된 재료가 여러가지입니다.

    >

    > 저는 이렇게 할려고 했는데 잘 안되는군요.

    > 판매테이블의 음식명을 가지고 재료입력테이블의 재료번호를 찾아서 수량을 가지고 옵니다. 이 수량에 판매테이블의 판매된 음식수량을 곱한뒤 재료테이블의 재고량에서 빼는거죠. 그런데 재료입력테이블에서 한 음식에 들어가는 재료가 한가지이면 간단한데 여러가지라 그게 잘 안되는군요.

    >

    > 좋은 방안 있으시면 부탁드립니다.

    >





    • 1999.01.26 23:11
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이현신
      1999.06.04 19:33
      탐색기나 폼더안에서 화일이나 디렉토리를 선택하고 마우스 오른쪽을 누르면 팝업 메뉴가 나오는데.. 여...
    • 신인재
      1999.01.27 01:34
      한 wrote: > 모두들 수고하시네요... > 어려운 시기에 모든일 잘되시기를 먼저 기원합니다. 저도 잘되고...
    • 김성동
      1999.06.04 20:11
      말슴하신 기능을 마이크로소프트에서는 Shell Extensions이라고 합니다. 레지스트리를 건드리는 방법과 OL...
    • 1999.01.26 23:11
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 배선경
      1999.06.04 18:16
      방법을 찾고 있는데..잘 안되네요. 우선 DB는 인포믹스를 쓰고 있어요. 제가 짠 프로그램에서 검색한는 ...
    • 신인재
      1999.01.27 01:34
      한 wrote: > 모두들 수고하시네요... > 어려운 시기에 모든일 잘되시기를 먼저 기원합니다. 저도 잘되고...
    • 김태균
      1999.06.04 20:01
      배선경 께서 말씀하시기를... > 방법을 찾고 있는데..잘 안되네요. > 우선 DB는 인포믹스를 쓰고 있어요....
    • 북해
      1999.06.04 18:14
      안녕하세요. 저는 델파이로 간단한 게임 프로그램을 만들려고 하는데요, 델파이2 언리쉬드를 보니깐 SDK가 ...
    • 이정욱
      1999.01.25 21:35
      여기를 눌러보세요. 그러면 삐삐호출에 대한 소스를 얻으실 수 있을것입니다. 이창식 wrote: > 안녕...
    • 조복기
      1999.06.07 23:22
      북해 께서 말씀하시기를... > 안녕하세요. 저는 델파이로 간단한 게임 프로그램을 만들려고 하는데요, 델...
    • 이정욱
      1999.01.25 21:35
      여기를 눌러보세요. 그러면 삐삐호출에 대한 소스를 얻으실 수 있을것입니다. 이창식 wrote: > 안녕...
    • 허승철
    • 1999.06.04 11:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.06.05 01:10
      http://pweb.netcom.com/~cherrman/afrms302.htm 를 참고해 보세요. 허승철 께서 말씀하시기를... > 안...
    • 전철호
      1999.06.04 18:24
      허승철 께서 말씀하시기를... > 안녕하세요? > 이곳에서는 처음 글을 쓰게 되는군요.. > 이번에 델파이...
    • 구민오
    • 1999.01.25 05:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.01.27 23:18
      구민오 wrote: > 데이터 베이스를 배우는 초보입니다... *^^* > 데이터 베이스를 만들때요... database d...
    • 김윤경
    • 1999.06.04 06:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • KJW
      1999.06.04 06:38
      김윤경 께서 말씀하시기를... > Select 한 double 값 (예 1234567.09) 를 String Grid 에 (1,234,567.0900...
    • 노유승
    • 1999.01.21 03:23
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.01.21 04:17
      안녕하세요? 정확한 답변이 될른지는 모르겠지만 먼저 CCTV에서 컴퓨터로 연결되기 위한것이 무엇이냐에 ...
    • 신재민
      1999.01.21 04:17
      TV케이블로 데이타가 들어오니.. TV수신카드를 통해 데이타를 보는것은 어떨까요.. TV수신카드는 드라...
    • 노유승
    • 1999.01.21 03:23
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 이성민
      1999.06.04 05:07
      그냥 워드를 띄우는 방법 말고요... 파일 오픈해서 그 파일을 워드로 띄워주는 그런 방법을 알고 싶네요...
    • 이정욱
      1999.01.21 04:17
      안녕하세요? 정확한 답변이 될른지는 모르겠지만 먼저 CCTV에서 컴퓨터로 연결되기 위한것이 무엇이냐에 ...
    • 아무나
      1999.06.04 20:06
      이성민 께서 말씀하시기를... > 그냥 워드를 띄우는 방법 말고요... > > 파일 오픈해서 그 파일을 워드...
    • 신재민
      1999.01.21 04:17
      TV케이블로 데이타가 들어오니.. TV수신카드를 통해 데이타를 보는것은 어떨까요.. TV수신카드는 드라...
    • 안치봉
      1999.06.04 06:54
      이성민 께서 말씀하시기를... > 그냥 워드를 띄우는 방법 말고요... > > 파일 오픈해서 그 파일을 워드...
    • 안치봉
      1999.06.04 06:38
      이성민 께서 말씀하시기를... > 그냥 워드를 띄우는 방법 말고요... > > 파일 오픈해서 그 파일을 워드...
    • 노영길
    • 1999.06.04 04:20
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 노유승
      1999.01.21 03:23
      CCTV카메라에 보여지는 영상을 윈도우창에 보여 주려고 합니다. 처음 해보는 부분이라 어디서 부터 시작해...
    • 글쎄요.
      1999.06.05 01:19
      노영길 께서 말씀하시기를... > 안녕하세요 > 저는 전북에 사는 영길이라고 하는데 이번 레포트에서 FFT...
    • 이정욱
      1999.01.21 04:17
      안녕하세요? 정확한 답변이 될른지는 모르겠지만 먼저 CCTV에서 컴퓨터로 연결되기 위한것이 무엇이냐에 ...
    • 신재민
      1999.01.21 04:17
      TV케이블로 데이타가 들어오니.. TV수신카드를 통해 데이타를 보는것은 어떨까요.. TV수신카드는 드라...
    • Trex98
    • 1999.01.15 03:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.01.21 00:00
      네.. 그러나 3.0에 포함된 인스톨 쉴드에는 BDE배포시 문제가 있다고 합니다. 4.0것은 확인을 해보지는 못...
    • 박성훈
    • 1999.06.04 03:07
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 신호성
      1999.06.04 22:46
      박성훈 께서 말씀하시기를... > 메뉴테이블, 재료테이블,재료입력테이블, 판매테이블이 있습니다. (식당관...
    • 신인재
      1999.06.04 04:49
      일딴 질문의 요지를 모르겠군요...말씀하신것을 보면 일딴 프로그램적인 로직은 다 서있으신거 같은데.......
    • 김영
    • 1999.01.19 22:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.01.20 08:01
      네.. 퀵리포트에 프린터 세팅부분에 버그가 있다고 합니다. 퀵리포트사의 홈페이지로 가셔서 패치를 받으...
    • 김영
    • 1999.01.19 22:27
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이호선
      1999.06.04 00:54
      안녕하세요 팝업메뉴에선 폰트를 설정하는 프로퍼티가 없더군요. 팝업메뉴에서 폰트체를 바꿀수 있는 방...
    • 이정욱
      1999.01.20 08:01
      네.. 퀵리포트에 프린터 세팅부분에 버그가 있다고 합니다. 퀵리포트사의 홈페이지로 가셔서 패치를 받으...
    • 김성동
      1999.06.04 20:15
      델4의 경우에는 OWNERDRAW 기능이 있어서 적절한 폰트를 가지고 일일이 그려주면 됩니다. 델4이하 버전에서...
    • 신인재
      1999.06.04 04:32
      글쎄요......2가지 방법이 있습니다.... 첫번째. 팝업메뉴를 새로 만든다......( 팝업메뉴에선 폰트를 ...
    • 박정현
    • 1999.06.04 00:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • redhead
      1999.06.04 23:30
      박정현 께서 말씀하시기를... > DBGrid에서 행의 위치를 알려면 어떻게 하면 될까요. > PowerBuilder에서...
    • 한스
    • 1999.01.15 02:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.01.19 19:43
      그것들은 윈도우NT에서 알아서 처리를 해줍니다. 별로 신경을 안쓰셔도 될듯.... 한스 wrote: > > ...
    • 서영택
    • 1999.06.03 23:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이규하
      1999.06.04 19:18
      서영택 께서 말씀하시기를... > 환경 > UNIX, ORACLE8, DELPHI4 > > > 인스톨쉴드로 만들어서 설치...
    • 문무석
    • 1999.01.16 23:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.01.19 19:41
      Resize시에 Invalidate를 원하시는것인가요? WinProc를 가로채서 사용하시면 될듯 하네요.. 문무석 wro...