::: µ¨ÆÄÀÌ Tip&Trick :::

µ¨ÆÄÀÌ Tip&Trick ¼º°Ý¿¡ ¸ÂÁö ¾Ê´Â ±¤°í,ºñ¹æ,Áú¹®ÀÇ ±ÛÀº Áï½Ã »èÁ¦Çϸç
³»¿ëÀ» º¹»çÇÏ¿© »ç¿ëÇÒ °æ¿ì ¹Ýµå½Ã ÀÌ°÷(http://www.howto.pe.kr)À» Ãâó·Î ¸í½ÃÇÏ¿© ÁÖ¼¼¿ä


Category

  ±è¿µ´ë(2003-03-07 09:13:35, Hit : 4473, Vote : 992
 µ¿ÀûÀ¸·Î SELECTÀÇ GROUP BY ¹® ¸¸µé±â

> ÇýÁ¤ÀÌ wrote:
> ¾È³çÇϼ¼¿ä?
>
> ¿©·¯°³ÀÇ Ç׸ñÀÌ ÀÖÀ»¶§ ÀÌ°É group by¸¦ Çϴµ¥...
> ¸î°³¸¦ ¼±ÅÃÇؼ­ group byÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÖ³ª¿ä?
> ¿¹¸¦ µé¸é...
> Ç׸ñÀÌ a,b,c,d,e,f(Çʵåµé)°¡ ÀÖÀ»¶§...
>
> ·±Å¸Àӽà a,b¸¦ ¼±ÅÃÇؼ­(üũ¹Ú½ºÀÌ¿ë) sqlÀ» ³¯¸®¸é...
> sql.add('select a,b,sum(x) from aaa');
> sql.add('group by a,b');
> À§¿Í°°Àº ¹®ÀåÀÌ ½ÇÇàµÇ¾î¾ß ÇØ¿ä...
>
> ¼±ÅÃÇÒ ¼ö ÀÖ´Â °¹¼ö´Â ¿©·¯°³°¡ µÉ¼ö ÀÖ¾î¿ä..
> ¿¹¸¦ µé¸é c,d,f¼¼°³¸¦ ¼±ÅÃÇÒ ¼öµµ ÀÖ°í ¸»ÀÌ¿¡¿ä...
>
> ³Ê¹« °æ¿ìÀÇ ¼ö°¡ ¸¹¾Æ¼­...
> ¹«½¼ ¹æ¹ýÀÌ ¾øÀ»±î¿ä?
> decisioncube¸¦ ¾²¸é µÇ´Âµ¥...¾µ¼ö ¾ø´Â »óȲÀ̶ó¼­...ÂÁÂÁ...
>
> ²À Á» ¾Ë·ÁÁà¿ä...
>
> ±×·³ ¾È³çÈ÷ °è¼¼¿ä..
>

¾È³çÇϼ¼¿ä  ±è¿µ´ëÀÔ´Ï´Ù
SQL¹®ÀÇ Á¶ÇÕÀº »ç½Ç ¹®ÀÚ¿­ Á¶ÀÛÀ̱⠶§¹®¿¡ ¸¸µå´Â ¹æ¹ýÀº ´Ù¾çÇÕ´Ï´Ù

±×·±µ¥ Áú¹®ÇϽŠGROUP BY °¡ µé¾î°¡´Â SELECT¹®Àº °í·ÁÇÒ »çÇ×ÀÌ
ÇÑ°¡Áö ÀÖ½À´Ï´Ù
"Groups within Groups"
Áï GROUP BY µÚ¿¡ ³ª¿­ÇÑ ÇʵåµéÀº ±âº»ÀûÀ¸·Î sort order
°¡ Àֱ⠶§¹®¿¡ ¿ì¼±¼øÀ§¸¦ »ý°¢ÇØ¾ß ÇÕ´Ï´Ù

¾Æ·¡ ¿¹Á¦¸¦ Çѹø µ¹·Áº¸¼¼¿ä
¸¸µå´Â ¹æ¹ýÀº ÆûÀ§¿¡ ³ª¶õÈ÷ ¹è¿­ÇÑ CheckBox 5°³, Button Çϳª,
Memo Çϳª¸¦ ¿Ã·Á³õ½À´Ï´Ù
±×´ÙÀ½¿¡ ¼³Á¤ÇÒ ÇÁ·ÎÆÛƼ´Â ¼Ò½º¿¡¼­ ÇϹǷΠ¼³Á¤ÇÒ ÇÊ¿ä°¡ ¾øÀÌ
¹Ù·Î ½ÇÇàÇÏ½Ã¸é µË´Ï´Ù

½ÇÇà ÈÄ °¢ CheckBox ¸¦ Ŭ¸¯ÇϽøé Memo¿¡ SELECT¹®ÀåÀÌ »ý¼ºµË´Ï´Ù
¿©±â¿¡ ¿ì¼±¼øÀ§¸¦ °í·ÁÇؼ­...
¿ì¼±¼øÀ§´Â ³ªÁß¿¡ check ÇÑ°ÍÀÌ ³ô°Ô ¼³Á¤µË´Ï´Ù

±×·³ ¼ö°íÇϼ¼¿ä


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure CheckBoxAllClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  CheckBoxList: TStringList;

implementation
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  CheckBoxList := TStringList.Create;
  // Å×À̺íÀÇ Çʵå¸í°ú ±× Çʵ带 ³ªÅ¸³»´Â CheckBoxÀÇ ¿¬°ü°ü°è¸¦ ³ªÅ¸³»¾î ÀúÀåÇÑ´Ù
  CheckBoxList.AddObject('a', TObject(CheckBox1));
  CheckBoxList.AddObject('b', TObject(CheckBox2));
  CheckBoxList.AddObject('c', TObject(CheckBox3));
  CheckBoxList.AddObject('d', TObject(CheckBox4));
  CheckBoxList.AddObject('e', TObject(CheckBox5));

  for i := 0 to CheckBoxList.Count-1 do
  begin
    // °¢ CheckBoxÀÇ Tag¿¡ ÃʱâÄ¡ 0¸¦ ³Ö´Â´Ù
    TCheckBox(CheckBoxList.Objects[i]).Tag := 0;
    // °¢ CheckBoxÀÇ ShowHint¸¦ È°¼ºÈ­ ÇÑ´Ù
    TCheckBox(CheckBoxList.Objects[i]).ShowHint := True;
    // °¢ CheckBoxÀÇ OnClick À̺¥Æ® ÇÒ´ç
    TCheckBox(CheckBoxList.Objects[i]).OnClick := CheckBoxAllClick;
  end;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CheckBoxList.Free;
end;

procedure TForm1.CheckBoxAllClick(Sender: TObject);
var
  i, j, CheckedCount: Integer;
begin
  if TCheckBox(Sender).Checked then
  begin
    // °¡Àå ÃÖ±Ù¿¡ CheckµÈ CheckBoxÀÇ ¿ì¼±¼øÀ§¸¦ 1 ·Î ³ª¸ÓÁö´Â 1¾¿ Áõ°¡
    TCheckBox(Sender).Tag  := 1;
    TCheckBox(Sender).Hint := IntToStr(TCheckBox(Sender).Tag) + ' ¼øÀ§';

    for i := 0 to CheckBoxList.Count-1 do
      if (TCheckBox(CheckBoxList.Objects[i]) <> TCheckBox(Sender)) and
         (TCheckBox(CheckBoxList.Objects[i]).Tag > 0) then
      begin
        TCheckBox(CheckBoxList.Objects[i]).Tag  := TCheckBox(CheckBoxList.Objects[i]).Tag + 1;
        TCheckBox(CheckBoxList.Objects[i]).Hint := IntToStr(TCheckBox(CheckBoxList.Objects[i]).Tag) + ' ¼øÀ§';
      end;
  end
  else // UnChecked
  begin
    // ¸ðµç CheckµÈ CheckBoxÀÇ ¿ì¼±¼øÀ§¸¦ 1¾¿ °¨¼Ò
    for i := 0 to CheckBoxList.Count-1 do
      if TCheckBox(CheckBoxList.Objects[i]).Tag > TCheckBox(Sender).Tag then
      begin
        TCheckBox(CheckBoxList.Objects[i]).Tag  := TCheckBox(CheckBoxList.Objects[i]).Tag - 1;
        TCheckBox(CheckBoxList.Objects[i]).Hint := IntToStr(TCheckBox(CheckBoxList.Objects[i]).Tag) + ' ¼øÀ§';
      end;

    TCheckBox(Sender).Tag  := 0;
    TCheckBox(Sender).Hint := '';
  end;

  // CheckedµÈ°ÍÀÌ ¾øÀ¸¸é SELECT¸¦ ¸¸µéÁö ¾Ê´Â´Ù
  Memo1.Clear;
  CheckedCount := 0;
  for i := 0 to CheckBoxList.Count-1 do
    if TCheckBox(CheckBoxList.Objects[i]).Tag > 0 then
       Inc(CheckedCount);
  if CheckedCount = 0 then
    System.Exit;

  Memo1.Lines.Add('SELECT');
  // ¿ì¼±¼øÀ§¿¡ µû¶ó ÇʵåÀÇ À§Ä¡¸¦ °áÁ¤
  for i := 1 to CheckBoxList.Count do // ¼øÀ§
    for j := 0 to CheckBoxList.Count-1 do
      if TCheckBox(CheckBoxList.Objects[j]).Tag = i then
        Memo1.Lines.Add(CheckBoxList.Strings[j]+',');
  // ¸Ç ¸¶Áö¸· comma¸¦ Á¦°ÅÇÑ´Ù
  Memo1.Lines[Memo1.Lines.Count-1] :=
      Copy(Memo1.Lines[Memo1.Lines.Count-1], 1, Length(Memo1.Lines[Memo1.Lines.Count-1])-1);

  Memo1.Lines.Add('FROM table');
  Memo1.Lines.Add('GROUP BY');
  // ¿ì¼±¼øÀ§¿¡ µû¶ó ÇʵåÀÇ À§Ä¡¸¦ °áÁ¤
  for i := 1 to CheckBoxList.Count do // ¼øÀ§
    for j := 0 to CheckBoxList.Count-1 do
      if TCheckBox(CheckBoxList.Objects[j]).Tag = i then
        Memo1.Lines.Add(CheckBoxList.Strings[j]+',');
  // ¸Ç ¸¶Áö¸· comma¸¦ Á¦°ÅÇÑ´Ù
  Memo1.Lines[Memo1.Lines.Count-1] :=
      Copy(Memo1.Lines[Memo1.Lines.Count-1], 1, Length(Memo1.Lines[Memo1.Lines.Count-1])-1);
end;

end.





571   [À©µµ¿ìÁî API] À©µµ¿ìÁî '½ÃÀÛ' ¸Þ´º Refresh ½ÃÅ°±â  ±è¿µ´ë 2003/03/07 5010 1473
570   [À©µµ¿ìÁî API] ´Ù¸¥ ApplicationÀÇ È­¸é¿¡ ±ÛÀÚ,±×¸²À» Ãâ·ÂÇÏ±â  ±è¿µ´ë 2003/03/07 3675 930
569   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] WideString À» String À¸·Î ¹Ù²Ù±â  ±è¿µ´ë 2003/03/07 4876 1237
568   [À©µµ¿ìÁî API] À©µµ¿ìÁî Ž»ö±âÀÇ ÆÄÀÏ, ÄÄÇ»ÅÍ Ã£±â È­¸é ¶ç¿ì±â  ±è¿µ´ë 2003/03/07 6571 1705
567   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] MessageDlg()ÀÇ ÆùÆ®¸¦ ¹Ù²Ù¾î¼­ ¶ç¿ì±â  ±è¿µ´ë 2003/03/07 4200 1104
566   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ListView ÀÇ item À» °­Á¦·Î ÆíÁý»óÅ·Π¸¸µé±â  ±è¿µ´ë 2003/03/07 4939 1270
  [µ¥ÀÌÅͺ£À̽º] µ¿ÀûÀ¸·Î SELECTÀÇ GROUP BY ¹® ¸¸µé±â  ±è¿µ´ë 2003/03/07 4473 992
564   [À©µµ¿ìÁî API] ALT_F4 hot key °¡·Îä±â  ±è¿µ´ë 2003/03/07 5973 1701
563   [À©µµ¿ìÁî API] ·¹Áö½ºÆ®¸® Àüü °Ë»öÇÏ±â  ±è¿µ´ë 2003/03/07 4561 1195
562   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TOpenDialog ÀÇ '¼±ÅÃ','Ãë¼Ò' ¹öÆ° À̸§ ¹Ù²Ù±â  ±è¿µ´ë 2003/03/07 4619 1391
561   [À©µµ¿ìÁî API] ¸ð¼­¸®°¡ µÕ±Ù(rounded ends) TEdit ¸¸µé±â  ±è¿µ´ë 2003/03/07 5405 1355
560   [½Ã½ºÅÛ] ÇÁ·Î±×·¥ÀÌ µ¿ÀûÀ¸·Î ÇÒ´ç¹ÞÀº ¸Þ¸ð¸® Å©±â ?  ±è¿µ´ë 2003/03/07 4829 1361
559   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] OnActivate À̺¥Æ® ³»¿¡¼­ Æû È®½ÇÈ÷ ´Ý±â  ±è¿µ´ë 2003/03/07 4481 1136
558   [µ¥ÀÌÅͺ£À̽º] QueryÇÑ °á°ú¸¦ ¼öÁ¤Çϱâ...  ±è¿µ´ë 2003/03/07 5172 1247
557   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGridÀÇ CellÀ» °­Á¦·Î ´ÙÁß ¼±ÅÃ/ÇØÁ¦ ½ÃÅ°±â  ±è¿µ´ë 2003/03/07 4359 1057
556   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TRichEditÀÇ Çà°£°Ý ¶ç¿ì±â(line spacing)  ±è¿µ´ë 2003/03/07 5799 1543
555   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ÇÁ¸°ÅÍ·Î escape ¹®ÀÚ Ãâ·ÂÇϱâ(raw print)  ±è¿µ´ë 2003/03/07 5402 1334
554   [À©µµ¿ìÁî API] keyboard, mouse ¸Þ½ÃÁö ¹«½Ã(skip) ÇÏ±â  ±è¿µ´ë 2003/03/07 4736 1255
553   [À©µµ¿ìÁî API] À©µµ¿ìÁî Ä¿¼­(global cursor) ¹Ù²Ù±â  ±è¿µ´ë 2003/03/07 7513 2287
552   [½Ã½ºÅÛ] ÇöÀç ÇÁ¸°ÅÍÀÇ Ãâ·Â°¡´ÉÇÑ ¿ëÁöÁ¾·ù ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 6586 1740
551   [½Ã½ºÅÛ] ÇÁ¸°ÅÍ¿¡ ÀÛ¾÷ÁßÀÎ jobÀÇ ¸®½ºÆ® ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 5194 1298
550   [½Ã½ºÅÛ] Clipboard ÈÉÃ帱â(Clipboard hooking)  ±è¿µ´ë 2003/03/07 7348 1664
549   [À©µµ¿ìÁî API] ControlÀÇ repainting ±ÝÁöÇÏ¿© ±ô¹ÚÀÓ ÁÙÀÌ±â  ±è¿µ´ë 2003/03/07 6114 1326
548   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¹®ÀÚ¿­ÀÇ ³¡¿¡¼­ºÎÅÍ °Ë»öÇÏ´Â Pos() ÇÔ¼ö  ±è¿µ´ë 2003/03/07 5377 1223
547   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] µð·ºÅ丮¸í ¹Ù²Ù±â/À̵¿ ÇÏ±â  ±è¿µ´ë 2003/03/07 5619 1640
546   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] µð·ºÅ丮 º¯µ¿»çÇ×À» Ž»ö±â¿¡ ¾Ë¸®±â  ±è¿µ´ë 2003/03/07 5730 1656
545   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Æû ÀμâÇϱâ 2  ±è¿µ´ë 2003/03/07 4125 1309
544   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¿¬¼ÓµÈ Å°º¸µåÀÇ Å° ¹ß»ý½ÃÅ°±â  ±è¿µ´ë 2003/03/07 4392 1169
543   [½Ã½ºÅÛ] Keyboard Hook  ±è¿µ´ë 2003/03/07 4443 935
542   [À©µµ¿ìÁî API] ·¹Áö½ºÆ®¸®ÀÇ Æ¯Á¤Å°¸¦ ÆÄÀÏ·Î ÀúÀå/º¹¿øÇÏ±â  ±è¿µ´ë 2003/03/07 7023 1591
541   [½Ã½ºÅÛ] PC¿¡ ¼³Ä¡µÈ DirectX ¹öÀü ÀÐ±â  ±è¿µ´ë 2003/03/07 4181 1268
540   [µ¥ÀÌÅͺ£À̽º] CD ¿¡ ÀÖ´Â DB Á¢±ÙÇÏ±â  ±è¿µ´ë 2003/03/07 4070 1140
539   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Á¦¾îÆÇÀÇ applet ¸®½ºÆ® (17°³)  ±è¿µ´ë 2003/03/07 3610 1027
538   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Åõ¸íÇÑ Bitmaps ÀÎ¼â  ±è¿µ´ë 2003/03/07 7892 1451
537   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] QReport ¸¦ bmp ·Î º¯È¯ÇÏ±â  ±è¿µ´ë 2003/03/07 3469 902
536   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] WMF ¸¦ BMP ·Î º¯È¯ÇÏ±â  ±è¿µ´ë 2003/03/07 4653 1402
535   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] MemoÀÇ ÀÔ·ÂÇà¼ö Á¦ÇÑÇÏ±â  ±è¿µ´ë 2003/03/07 4390 1215
534   [½Ã½ºÅÛ] PCÀÇ Àü¿ø»óÅ ¾Ë¾Æº¸±â  ±è¿µ´ë 2003/03/07 6148 3786
533   [À©µµ¿ìÁî API] ÆÄÀÏ¿¡¼­ ¾ÆÀÌÄÜ »©³»±â(32 * 32)  ±è¿µ´ë 2003/03/07 6667 1668
532   [À©µµ¿ìÁî API] ÆÄÀÏ¿¡¼­ ¾ÆÀÌÄÜ »©³»±â(16 * 16)  ±è¿µ´ë 2003/03/07 5065 1323

[ÀÌÀü 10°³] [1].. 11 [12][13][14][15][16][17][18][19][20]..[25] [´ÙÀ½ 10°³]
 

Copyright 1999-2024 Zeroboard / skin by zero