Q&A

  • 예제좀 봐주세요..부탁드립니다
아래 예제 보고 틀린데 있으면 좀 고쳐주세요

Group by절에서 뭔가 잘못된거 같거든요

부탁드립니다



procedure TForm1.FormCreate(Sender: TObject);

var

m_sUserName: string;

m_sUseCom: string;

m_sUseProg: string;

m_ii: integer;

m_jj: integer;

m_dTemp : TDate;



begin



With Query1 do

begin

Close;

SQL.Clear;

SQL.Add('Select *');

SQL.Add('From DefUser D');

Open;

stringGrid.Colcount := recordCount +1;

First;

m_ii := 1;

While not Eof do

begin

stringGrid.Cells[m_ii,0] := FieldByName('UserName').AsString;

inc(m_ii);

Next;

end;



StringGrid.RowCount := Trunc(EndDate.Date-StartDate.Date +1);

m_dTemp := StartDate.Date;

for m_ii := 1 to StringGrid.RowCount do

begin

stringGrid.Cells[0,m_ii] := DateToStr(m_dTemp);

m_dTemp := m_dTemp + 1;

end;







for m_ii := 1 to stringGrid.ColCount do

Close;

SQL.Clear;



SQL.Add('Select StartDate, Sum(Usetime) TotUseTime');

SQL.Add('From RecUsed R, defUser D');

SQL.Add('where (startDate Between startDate and EndDate) and (UserName=:pUserName)');

SQL.Add('and (R.SerialNo=D.SerialNo)');

SQL.Add('GROUP BY startDate');

ParamByName('pUserName').AsString:= stringGrid.Cells[1,m_ii];

Open;



begin

for m_ii := 1 to StringGrid.RowCount do

if Query1.Locate('StartDate',StrToDate(stringGrid.Cells[1,m_ii]),[]) then

StringGrid.Cells[1,m_ii]:=IntToStr(FieldByName('UseTime').value)

else stringGrid.cells[1,m_ii] :='0';

end;

//m_ii := 1;





end;

end;

end.



0  COMMENTS