Q&A

  • TTable에서 Group By는 어떻게 해야 합니까?
안녕하세요
수고 많습니다.

paradox을 이용하여 table을 만들었습니다.

그런데 table에서 합을 구하고 싶은데
어떻게 하는지 모르겠습니다.

Query는
with Query do
      begin
      Close;
      Clear;
      Sql.Add('select code, sum(qty1) from table ');
      Sql.Add('where code =:p1                         ');
      Sql.Add('Group by code                           ');
      parambyname('p1').asstring:='aaa'
      Close;
      end;
      이렇게 하지 않습니까?

TTable은
with TTable1 do
       begin
       First;
      -----------  //이부분에 Group by을 주면 될것 같은데 잘 되지 않습니다.
      -----------
       TTable1.Close;
Table은 어떻게 하는지...?
그리고 where부분은 어떻게 사용하는지도 알고 싶습니다.
검색을 해보니 where은 Filiter을 사용하라고 하는데
이해가 잘 되지 않습니다.

그럼 수고 하세요
많은 답변을 부탁 드립니다.

ps:paradox table을 이용하여 Query(문장???)을 사용할 수 있습니까?
4  COMMENTS
  • Profile
    모영철 2004.07.08 23:19
    TQuery를 쓰시면 안될까요???^^;;

    Dataset1.Filter := 'State <> ''CA'' or State = BLANK';

    이런식으로 쓴다는군요...와일드카드도 쓸수 있습니다.

    State = 'M*' 이런식으로요

    헬프를 보면 자세히 나와 있구요...

    그룹바이는 쿼리에 의해서 만 구현 될수 있을것같습니다.

    하지만 꽁수를 써보면..

    그룹바이를 빼고 테이블을 날려서 자료를 가지고 온다음에..

    루핑을 돌려서 더하려는 필드를 주욱 더해가지고 가지고 계신다음

    데이타 셋에 들어 있는 데이타를 몽땅 지웁니다.
    (post되면 안되니 조심해서...BeforePost에서 막으면 될라나..)
    그리고 계산된 결과를 insert 하는거죠..

    적어 놓고 보니 아주 안좋은 방법이네요..

    Table을 써야 하고 Sum이 필요하시면 루핑돌려서 계산하고

    Edit박스같은곳에 뿌려주는게 나을거 같습니다.

    어차피 Query에 의해서 데이타를 가지고 오는게 아니라면

    이런식이 될거 같습니다.

    필터는 헬프를 보니
  • Profile
    Galaxy 2004.07.08 23:30
    안녕하세요
    수고 많습니다.
    답변에 감사 드립니다.

    저도 TQuery을 사용하면 아주 편하게 작업을 할것 같은데....
    꼭 TTable을 사용을 해야하니 어떻게 할 수가 없는네요
    어떤사람들은 Calcfields을 사용하라고 권하는데 저희들이 원하는것 하고 안맞는것 같고 해서....정 안되면 편법을 이용하여 해결 해야죠...
    아니면 제가 문제를 잘못 이해하고 있는지 모르겠습니다.

    제가 원하는것은....

    code      size     Color     Q'ty1         Q'ty2       Q'ty3

    aaa        111       red       10              20           30
    aaa        111       red       11              22           33  
    aaa        111       red       12              24           36
    bbb        222       blue      20             30            40    
    bbb        222       blue      21             31            41    
    bbb        222       blue      22             32            42    
    bbb        222       blue      23             33            43    
    ccc        333       aqua     30             50            60
    ccc        333       aqua     31             51            61
    .....

    table에 값들이 이렇게 저장 되어있습니다.
    group을 code,size,color 이렇게 주고 합을 구하면...
    아래와 같은 결과를 얻을 것입니다.

    code     size      color    Q'ty1     Q'ty2       Q'ty3

    aaa       111        red      33          66           99
    bbb       222        blue     86         126          166
    ccc       333        aqua    61         101          121        
    ...
    이것을 TQuery을 이용하면 쉽게 해결 할 수 있는데....
    TTable을 꼭 이용을 해야하는데...안하면 안된입니다.
    어떻게 해결 할 방법이 없을까요....열심히 help,검색을 하고 있습니다.
    그럼 수고 하세요

  • Profile
    ㉳㉥ㅗ㉣ㅐ㉧ㅛ 2004.07.08 23:57
    AggFields

    라는 것이 있네요...이걸 활용하면 될것 같은디...아직 테스트는 못했네요...





  • Profile
    Galaxy 2004.07.09 01:45
    답변에 감사 드립니다.

    님의 말대로 AggFields 자료를 찾아보았습니다.
    내 느낌은 좋은 자료 인것 같은데... 다른 사람들은 어떻게 생각 할지 모르겠네요(자료를 첨부 합니다.)
    지금 이 자료를 열심히 보고 있습니다.
    이 자료로 보고 해결되지 않으면 편법을 쓰기로 했습니다.

    아래 내용은 어느 나라 말인지 도통모르겠네요...
    그럼 수고하세요
    ---------------------------------------------------------------------
    При открытии формы создаю CloneCursor следующим кодом. Нужно подключить поле
    AggregateField и просматривать в DBEdit. На последней строчке выдает ошибку- не найдено поле. В DebagInspect вижу, ч то свойство DataSet поля =NULL. Как правильно создать AggregateField and Lookup?
    TClientDataSet *AgClone = new TClientDataSet(NULL);
    AgClone->CloneCursor(DM->Jurnal, true,false);
    AgClone->IndexDefs->Add("AggAgents",
    "KeyAg;Date;NameOp;Summa", TIndexOptions() << ixCaseInsensitive);
    AgClone->IndexName="AggAgents";
    TAggregateField *AgOB =new TAggregateField(NULL);
    AgClone->AggFields->Add(AgOB);
    AgClone->AggFields->Fields[0]->FieldName="AgOB1";
    AgOB->Expression="SUM(Summa)";
    AgOB->IndexName="AggAgents";
    AgOB->GroupingLevel=1;
    AgOB->Active=true;
    AgClone->AggregatesActive=true;
    DataSource1->DataSet=AgClone;
    //DBEdit1->DataField="AgOD1";

    Яна   [12.01.03 16:37:12]
    Имя поля AgOD1 - исправила.

    Яна   [12.01.03 16:40:13]
    Ошибка Access violetion

    Архангельский   [13.01.03 15:13:35]
    Пытался найти ответ и пришел к тому же выводу. А вообще не проще создать поле во время проектирования?

    Яна   [13.01.03 4:06:39]
    Вопрос снимается.Ответ найден.Виртуальные поля описываются до создания DataSet.

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

    • 김도형
    • 2004.07.10 01:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • cell
      2004.07.10 03:04
      버튼의 Hint 프로퍼티에 설명을 써주고 showhint = True로 해주면 됩니다.
    • KDDG_Apine
      2004.07.10 04:03
      안녕하세요.... KDDG 입니다.... 제가 메일 클라이언트를 개발해
    • 꿈의대화
      2004.07.09 20:51
      .
    • 송현경
      2004.07.09 22:24
      get 명령을 보내면.. get하는데서 멈춰서 더이상의 진행이 안되는 겁니다. 프로그램이 다운되는것은 아닌...
    • KDDG_BaSTaD
      2004.07.09 22:38
    • 송현경
      2004.07.14 20:39
      마찬가지네요.. ftp 하는 컴퍼넌트.. 다른것은 없나요?
    • 유정헌
    • 2004.07.09 18:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2004.07.10 01:03
      var i : integer; begin   for i := 0 to Self.ComponentCount - 1 do    &nb...
    • 이미영
    • 2004.07.09 12:02
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김진태
    • 2004.07.09 08:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 뚜까
      2004.07.09 19:08
      편법으로 밖에 쓸수 없습니다. 일단 스트링그리드 올려놓고, 콤보박스 하나를 폼위에 올려 놓고요 마...
    • 박진규
    • 2004.07.09 02:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2004.07.09 18:42
    • 모영철
      2004.07.09 00:28
      환경 설정부분에서 체크해야 하지 않을까요?? 오라클 7로 연결할것인지 8로 연결할것인지.. 만일 이...
    • 김선아
      2004.07.09 00:58
      답변 감사합니다.. 그렇다면 레지스트리 검색은 어떻게 해야 하나요.. 제가 오라클은 처음 하는거라 어찌...
    • 모영철
      2004.07.09 01:30
    • 김도형
    • 2004.07.09 00:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2004.07.09 00:26
      폼을 만들어서 postion은 poScreenCenter로 놓으시고 formstyle은 fsStayOnTop으로 주시고.. 프로젝...
    • 모영철
      2004.07.09 00:00
      델파이 몇인지는 모르겠지만. CommportDriver이란 컴포넌트가 기본으로 깔린다는건 첨듣는것 같습니다. ...
    • ╋크로이첼™╋
      2004.07.09 00:11
      델파이버젼은 5입니다. 그리고 파일 올려드립니다. 이 네개의 파일중 어떤걸 설치 해야 저 에러가 없어지...
    • 모영철
      2004.07.09 00:37
      제생각엔 이중에서 comDrv32.zip 이안에 들어 있는게 컴포넌트인거 같습니다. 먼저 File-Open 하시고...
    • KDDG_Gnoses
      2004.07.10 10:21
      그렇군요 netbios! 짝퉁 프로토콜 api가 있었군요. 데브피아 netbios 게시물 사명감에 한번 찾아...
    • 장명수
      2004.07.09 19:55
      uses NB30; NetBios란 함수가 있습니다. MAC Address는 물론 작업그룹명도 가져올수 있습니다.
    • KDDG_Gnoses
      2004.07.09 19:18
      허거덩... 그런게 가능하나요? 그 아이피를 가진 컴에 접근해서 프로그램을 하나 깔지 않는다음에서야....
    • 모영철
      2004.07.09 00:03
      bpl 파일은 패키지와 관련있는걸로 알고 잇는데요.. 인스톨 패키지 부분에 가보면 bpl파일경로가 있습니...
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.07.08 23:51
      if MessageDlg('Do You End Program Really?',mtConfirmation, [mbYes,mbNo],0 ) = mrYes then &n...
    • 온진욱
      2004.07.11 22:36
      .
    • Galaxy
    • 2004.07.08 03:11
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2004.07.08 23:19
      TQuery를 쓰시면 안될까요???^^;; Dataset1.Filter := 'State <> ''CA'' or State = BLANK'; ...
    • Galaxy
      2004.07.08 23:30
      안녕하세요 수고 많습니다. 답변에 감사 드립니다. 저도 TQuery을 사용하면 아주 편하게 작업을 할것...
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.07.08 23:57
      AggFields 라는 것이 있네요...이걸 활용하면 될것 같은디...아직 테스트는 못했네요...
    • Galaxy
      2004.07.09 01:45
      답변에 감사 드립니다. 님의 말대로 AggFields 자료를 찾아보았습니다. 내 느낌은 좋은 자료 인것 같은...
    • 첨시작델
      2004.07.08 19:08
      KDDG_Apine님 님두 델마당 길드신가요..같이 겜해본적 없는거 같네요.. 한참동안 채널에 못들어 간거 같네...
    • 이창영
      2004.07.08 05:01
      procedure TForm1.Button1Click(Sender: TObject); var s_string, s_prev3, s_next4: string;  &nbs...
    • KDDG_Apine
      2004.07.08 04:51
      저는 단순해서 간단한 방법뿐이 생각이 나지 않습니다.. 속도가 좀 떨어지지 않을까 싶습니다.. var sP...
    • 김진국
    • 2004.07.08 01:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김진국
      2004.07.08 01:43
      다시 부연 예를 드릴께요.. select failed_count from t_log where failed_count is not null 하면 ...
    • 이정규
    • 2004.07.08 01:13
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2004.07.09 00:10
      헬프에 보니깐 FTPDirectoryList를 쓰려면 ParseList프로퍼티가 True로 되있어야 한다는군요.. 혹시 ...
    • 못난이
      2004.07.09 01:17
      나머지는 도움말에 나와 있는거랑 다 맞습니당.....쩝.... True 당근이 되어 있습니당..... 읽어주시거...
    • 배정진
    • 2004.07.07 23:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • KDDG_Apine
      2004.07.08 04:56
      메모장은 표 만들기 안되구요..  리치에디터에서 표를 가져올수는 있다고 들었습니다. &nbs...