Q&A

  • 방법적인 면에서의 질문...
안녕하세요! 일단 오늘 하루도 즐건 하루 보내세요!



제가 물어 보려고 하는건요!



여러게의 테이블(A1,A2,A3,An) 있고요!



각각의 기능들이 다른 테이블입니다. 데이터의 종류도 다르고...



예를 들어서, A1은 사원들의 급여 지급사항이고요, A2는 회사의 자금사항(수입,지출...)



입니다.



이 두테이블로 말해서, A1의 여러 사원들 중에서 한명을 선택해서 그중에 현재부터



1년전의 지급된 금액의 자료를 더해서, A2의 2년전 지출금액에서 %를 구한다면



어떤 방법이 좋겠습니까?



그러니깐 필요할때 마다 여기저기(테이블)에서 딱 필요한 데이터만 뽑아서 연산을'



할때는 어케하는 편이 좋을지가 딱 떠오르지 않는군요!



고수님들의 조언 부탁드립니다.





3  COMMENTS
  • Profile
    김지엽 2001.05.11 20:28
    별로 어려운 문제는 아닐 듯 한데..

    SQL의 SUM 구문 등을 이용하시면 될 듯 하네요.

    예를 들자면

    SELECT SUM(지급금액)

    FROM A1

    WHERE 성명 = :성명

    AND 날짜 > :날짜1

    AND 날짜 =< : 날짜2



    요렇게 TQuery에 집어넣어놓고, 파라미터 세 개 맞춰놓고 실행시키면 A1 특정사원에게 날짜1~날짜2 사이에 지급된 금액의 총합을 쉽게 구할 수 있겠죠.. A2의 지출 금액도 마찬가지구요.. 두 금액을 구하고 나서 퍼센트 구하는거야 식은 죽 먹기겠져..



    제가 혹시 문제의 조건을 잘못 알고 있는건가여? ^^;;;

  • Profile
    초보델피언 2001.05.11 22:36
    지엽님의 말씀데로 하면 되겠군여!



    음... 근데 쿼리문으로 연산을 하면 서버에 부하를 주지는 않을까요?



    데이터를 클라이언트에 받아와서 연산하는 방법도 괜찮을까요?



    참!



    글구요! 여지껏 스트링 그리드만 사용해서 ....



    디비그리드의 한 컬럼을 선택해서 그 컬럼에 출력된 데이타만 선택하려면



    어케해야 할까요!



    스트링그리드에선 stringgrid1.cell[1,3] 이렇게 하자나요!



    김지엽 wrote:

    > 별로 어려운 문제는 아닐 듯 한데..

    > SQL의 SUM 구문 등을 이용하시면 될 듯 하네요.

    > 예를 들자면

    > SELECT SUM(지급금액)

    > FROM A1

    > WHERE 성명 = :성명

    > AND 날짜 > :날짜1

    > AND 날짜 =< : 날짜2

    >

    > 요렇게 TQuery에 집어넣어놓고, 파라미터 세 개 맞춰놓고 실행시키면 A1 특정사원에게 날짜1~날짜2 사이에 지급된 금액의 총합을 쉽게 구할 수 있겠죠.. A2의 지출 금액도 마찬가지구요.. 두 금액을 구하고 나서 퍼센트 구하는거야 식은 죽 먹기겠져..

    >

    > 제가 혹시 문제의 조건을 잘못 알고 있는건가여? ^^;;;

  • Profile
    김지엽 2001.05.12 05:16


    1.

    - 어차피 데이터를 받아오는데 걸리는 부하나, 서버연산에 걸리는 부하나 별 차이가 없습니다. 오히려 Sum 값을 가져오는 방법이 부하 면에서는 더 경제적이지요.



    - 데이터베이스 엔진에 걸리는 주요한 부하는 두가지거든요..

    a. 키를 가지고 데이터를 검색하는데 걸리는 부하

    b. 데이터를 날려주는데 걸리는 부하



    - SUM 연산에 걸리는 부하는 두 부하에 비하면 아무것도 아닙니다.



    2.



    - 통상적으로 DBGRID에서 값을 읽는 것이 아니라, 그 그리드의 DataSource가 지정하고 있는 DataSet (예를 들어 TTable, TQuery, TDatabase.DataSets 등..)에서 찾습니다.

    DataSet들은 Active되어 있을 때는 언제나 특정한 레코드를 선택하고 있기 마련인데, 읽어야 하는 레코드로 이동한 다음에

    (데이터셋 이름).Fields[읽으려고 하는 필드의 순서번호].AsString

    혹은

    (데이터셋 이름).FieldByName('읽으려는 필드의 명칭').AsString

    요런 식으로 읽으면 됩니다. 물론 AsString은 읽으려는 필드의 데이터형이 뭐냐에 따라서 다르겠죠.



    - 한데 굳이 Grid에서 읽고싶다면.. 포커스를 거기로 보내준 다음에 읽는 방법이 있겠고, 아싸리 편하게 Grid아닌 DBLabel같은거 쓰는게 어떨까 싶네여?

    • 안나
    • 2001.05.12 00:01
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 냉혈군
    • 2001.05.11 23:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 지나는이
      2001.05.13 12:17
      냉혈군 wrote: > 조건부선언에서... 윈98과 윈이천을 가려낼라구 하는데.... > > 델파이에서는.. 해볼...
    • 바다를향해
      2001.05.12 03:00
      음..........일반적으로 keydown이벤트에서 모든 키를 처리를 하긴하는데..... 쩝..........혹시 메인폼에...
    • peter
      2001.05.12 00:12
      써니 wrote: > keydown이벤트에 vk_tab키를 눌렀을경우 이벤트를 주려고 하는데 > 안되네요. > tab은 ...
    • hyun
    • 2001.05.11 23:30
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 궁금이
    • 2001.05.11 23:24
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정석
      2001.05.15 01:02
      궁금이 wrote: > 안녕하세여.. 델파이를 공부하고 있는 초보자 입니다. > 궁금한 것이 있어서 이렇게 질...
    • peter
      2001.05.12 00:16
      궁금이 wrote: > 안녕하세여.. 델파이를 공부하고 있는 초보자 입니다. > 궁금한 것이 있어서 이렇게 질...
    • 김진호
      2001.05.13 05:14
      김동수 wrote: > query1.close; > query1.open; > 하고나면 메모리에 쿼리1에서 셀렉트된게 메모리에 올...
    • 박종하
      2001.05.11 23:24
      베리사인같은 인증기관에서 인증하는 인증서는 제품인증서가 아니고 개발업체 인증서입니다. 그러므로 ...
    • 류종택
      2001.05.11 22:41
      Hex코드를 두자리씩 숫자형태로 변환하고 다시 문자로 변환하면 됩니다. 아래 간단한 예제를 참조하세요...
    • 짱아
    • 2001.05.11 22:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2001.05.11 22:45
      eORDER_NO_SEQ.text:= FloatToStr(QMax_Sel.FieldByName('ORDER_SEQ')).AsFloat); 과 같이 하시면되고요.....
    • 질문
    • 2001.05.11 21:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2001.05.11 22:46
      TTable 또는 TQuery의 OnAfterScroll이 바로 그놈입니다.. From 류.. 질문 wrote: > 안녕하세요. ...
    • 짱아
    • 2001.05.11 20:24
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2001.05.11 20:48
      StrToFloat 함수를 사용하는 경우에, (스트링값 -> 실수값) 입력되는 스트링값에 숫자와 점(.)을 제외한 문...
    • 짱아
      2001.05.11 20:54
      근데요~ StrToFloat 을 전혀 사용하지도 않았는걸요... 김지엽 wrote: > StrToFloat 함수를 사용하...
    • 김지엽
      2001.05.12 04:57
      만약 코딩된 부분에 그 함수가 사용되지 않았다고 하더라도, 사용하는 컴퍼넌트가 그 함수를 사용하는 경...
    • 초보
    • 2001.05.11 20:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2001.05.11 20:39
      움직이는 아이콘을 갖다 붙이는게 아니라, 정지해 있는 아이콘 두개를 번갈아가면서 뜨게 만들어서 움직이...
    • 김지엽
      2001.05.11 20:36
      정확히는 모르겠지만, 말 그대로 파일이나 디렉토리를 생성할 수 없을 때 나는 에러같군요. 제 기억으...
    • chobo
    • 2001.05.11 19:49
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2001.05.11 20:28
      별로 어려운 문제는 아닐 듯 한데.. SQL의 SUM 구문 등을 이용하시면 될 듯 하네요. 예를 들자면 SELEC...
    • 초보델피언
      2001.05.11 22:36
      지엽님의 말씀데로 하면 되겠군여! 음... 근데 쿼리문으로 연산을 하면 서버에 부하를 주지는 않을까요?...
    • 김지엽
      2001.05.12 05:16
      1. - 어차피 데이터를 받아오는데 걸리는 부하나, 서버연산에 걸리는 부하나 별 차이가 없습니다. 오히...
    • 처음
    • 2001.05.11 19:35
    • 0 COMMENTS
    • /
    • 0 LIKES
    • Heyyou
    • 2001.05.11 10:02
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하기
      2001.05.11 18:39
      잘은 모르겠지만 님께서는 Table의 DataBaseName을 적지 않으신것 같군요... 일반적으로 Data경로를 적어...
    • 나그네
      2001.05.11 17:08
      TSession을 사용한다면 반드시 TDatabase도 사용해야 합니다. 연결은 TSession-TDatabase-TTable/TQuery방...
    • 시빌더
    • 2001.05.11 07:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하기
      2001.05.11 18:31
      if Key = #13 then keybd_event(VK_TAB, 0, 0, 0); 이런식으로 하면 되지 않을까요??? 시빌더 wrote...
    • 이상우
      2001.05.11 21:32
      이성철 wrote: > 다른 분이 질문을 했는데 답변이 없어서 다시 올립니다. > ===========================...