| SQL 計算結果で並べ替えレコードを抽出する | ||||
計算結果で並べ替えるにはORDER BY に計算式を設定します。 例1: SQL = "SELECT 製品No FROM 製品マスター ORDER BY 単価 * 在庫数 " この場合、「単価 * 在庫数」を昇順で製品Noを取り出します。 例2: SQL = "SELECT 製品No , 単価 * 在庫数 AS 在庫金額 FROM 製品マスター ORDER BY 単価 * 在庫数 " この場合、「単価 * 在庫数」を昇順で製品Noと計算結果の「在庫金額」を取り出します。 ORDER BY に計算結果の「在庫金額」を指定することはできません。
サンプルソフト [実行時の画面] 「ORDER BY 打率」ボタンをクリックすると、安打÷打数×100 の計算結果で並び替えレコードを表示します。 ■打率を計算し並び替え抽出した画面 ![]() Format関数を使わないと下記になります。 13: 130: 20: 15.3846153846154 11: 150: 25: 16.6666666666667 10: 130: 30: 23.0769230769231 16: 100: 45: 45 [野球データベース テーブル] 選手ID 打数 安打 10 130 30 11 150 25 13 130 20 16 100 45 ![]() [コード] Option Compare Database Private Sub コマンド8_Click() Dim SQL As String Dim rs As Recordset Me!テキスト1 = Null SQL = "SELECT 選手ID,打数,安打,format(安打/打数*100,'##0.00') AS 打率 FROM 野球データベース ORDER BY 安打/打数*100" Set rs = CurrentDb.OpenRecordset(SQL) Do Until rs.EOF Me!テキスト1 = Me!テキスト1 & rs![選手ID] & ": " & rs![打数] & ": " & rs![安打] & ": " & rs![打率] & vbCrLf rs.MoveNext Loop Set rs = Nothing End Sub
ダウンロード |
||||
Copyright(C) 2007-2008 FeedSoft