表の集計で同じ最大値がいくつもあった場合、全部表示する方法はありますか?
宜しくお願いします。
(例)
11月1日 10
11月2日 75
11月3日 60
11月4日 75
11月5日 50
_______________________________
最大値 11月2日 75
11月4日 75
もう少し詳しく述べられたほうがレス付きますよ。
処理の流れを理解できるように、クエリを2回投げるのはダメですか?
Table1表のフィールドをCOL1, COL2として(型は適当に)
var
maxValue: integer;
SL : TStringList;
//COL2の最大値を取得
Query1.SQL.Clear;
Query1.SQL.Add('select max(COL2) as MaxCol2 from table1;');
Query1.Open;
maxValue := Query1.FieldByName('MaxCol2').AsInteger;
Query1.Close;
//COL2の最大値を条件に取得
Query1.SQL.Clear;
Query1.SQL.Add('select COL1 from table1 where COL2=' + IntToStr(maxValue) + ';');
Query1.Open;
SL := TStringList.Create;
try
while not Query1.eof do
begin
SL.Add(Query1.FieldByName('COL1').AsString + #09 + IntToStr(maxValue));
Query1.Next;
end;
//SL変数を適当に処理するコード
finally
SL.Free;
end;
Query1.Close;
または、サブクエリを使用するのは?
select COL1, COL2 from table1 where COL2 = (select max(COL2) FROM table1);
※タイプミスがある場合は適宜修正してください。m(__)m
@っしー様、ありがとうございました。
また分からないことがあったら、宜しくお願いします。
ツイート | ![]() |