表の最大値をいくつも取得するには

解決


あや  2004-11-09 22:22:34  No: 11679

表の集計で同じ最大値がいくつもあった場合、全部表示する方法はありますか?
宜しくお願いします。
    (例)
              11月1日      10
             11月2日      75
             11月3日      60
             11月4日      75
             11月5日      50  
    _______________________________
       最大値  11月2日    75
               11月4日    75


LupinⅢ  URL  2004-11-09 22:47:57  No: 11680

もう少し詳しく述べられたほうがレス付きますよ。


@っしー  2004-11-09 23:32:39  No: 11681

処理の流れを理解できるように、クエリを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


あや  2004-11-10 00:51:41  No: 11682

@っしー様、ありがとうございました。
また分からないことがあったら、宜しくお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加