DBからデータを読込む際のSELECT~で、その抽出条件として、フィールドAが「1」でフィールドBが「最小値」のデータを抽出したい時は、どのような構文になるのでしょうか??

A 回答 (5件)

Bの最小値なので、



SELECT * FROM TABLE_1 WHERE A = 1 ORDER BY B

ですよね? > mori0309さん
    • good
    • 0
この回答へのお礼

mori0309さんのとちょっと違うようですが、試したらできたのでいいんですよね?
一番シンプルでわかりやすかったです。
ありがとうございます。

お礼日時:2001/01/10 13:24

↓の補足です。


mnabeさんのでもどちらでもよかったですね。
    • good
    • 0

SELECT A,MIN(B) FROM TABLE_1 WHERE A = 1


GROUP BY A

がいいと思います。

実際に確認してみました。
    • good
    • 0
この回答へのお礼

同じようにやってみました。
簡単でわかりやすかったです。
ありがとうございました。

お礼日時:2001/01/10 13:19

レコードの全カラムを抽出したいのであれば



SELECT * FROM TABLE_1 WHERE A = 1 ORDER BY B DESC;

を実行して最初の1件目が求めるレコードとなります。
    • good
    • 0
この回答へのお礼

ORDER BYを使えば、MINを使わずにできるんですねぇ
全然気がつきませんでした。
ありがとうございました。

お礼日時:2001/01/10 13:21

今、環境がないので確認していませんが...こんな感じでOKだと思います。




--------------
SELECT field_A, Min(Field_B)
FROM Table_HogeHoge
GROUP BY Table_HogeHoge.field_A
HAVING (Table_HogeHoge.field_A=1)
--------------
 動作を確認していないので、違ったらごめんなさい。
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考にして、チャレンジしてみます。

お礼日時:2001/01/10 08:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q抽出条件でデータ型が一致しません。のエラーメッセージが出る

フォームで入力された値を、
次のファイルでクエリを読み込むときに代入するASPを作成しましたが、実行しようとすると、
「データ型が一致しません。」のエラーメッセージが出ます。
DBはACCESSを使用しています。ACCESSの対象テーブルで、
データ型を「テキスト型」にすると問題ないのですが、
「数値型」にすると、「データ型が一致しません」の
エラーメッセージになります。
フォームでは、プルダウンで「数値」を選択するようになっています。
宜しくお願いします。

Aベストアンサー

Where区に指定した条件のフィールドが数値なら『'』でくくる必要がありません

Set rs = db.Execute("SELECT テーブル3.* FROM テーブル3 WHERE (テーブル3.番号)=" & bangou)
といった具合に修正してみましょう

『'』でくくる必要があるのは対象のフィールドが文字列の場合です

Qユーザー定義関数でA列の値に応じてB列の値を変える

   A列      B列
1行   Type   名称
2行     1    あ
3行    2    い
4行    3    う

VBA初心者のものです。ユーザー定義関数を作成して、A列のTypeの値に応じて、B列の名称の値を変化させる式を作成中です。B列2行目に、下記のユーザー関数をセル式として記述し、3・4行目にコピーしたのですが、0が表示されてしまいます。
どうしてでしょうか?






Functionめいしょう(Type, 名称)

Sheets("突合せ").Select

If  Type = 1 Then
名称 ="あ"
Exit Function
    If  Type = 2 Then
  名称 = "い"
  Exit Function
       If  Type = 3 Then
       名称 = "う"
          Exit Function
      End If
    End If
End If

End Function

   A列      B列
1行   Type   名称
2行     1    あ
3行    2    い
4行    3    う

VBA初心者のものです。ユーザー定義関数を作成して、A列のTypeの値に応じて、B列の名称の値を変化させる式を作成中です。B列2行目に、下記のユーザー関数をセル式として記述し、3・4行目にコピーしたのですが、0が表示されてしまいます。
どうしてでしょうか?






Functionめいしょう(Type, 名称)

Sheets("...続きを読む

Aベストアンサー

ユーザー定義関数の作成とその使い方をよく理解して作成することが必要でしょう。
例えば次のようにします。
「開発」タブで「Visual Basic」を選択します。
表示の画面の左側でModule1をクリックし、その上部にある「コードの表示」を選択します。
右側の画面には次のコードを入力します。

Function 名称(KATA As Integer) As String
Select Case KATA
Case Is = 1
名称 = "あ"
Case Is = 2
名称 = "い"
Case Is = 3
名称 = "う"
Case Else
名称 = KATA
End Select
End Function

コードの入力ではTypeを入れることはできません。KATAを使っています。
これらの準備が整ってからシートのB2セルにはユーザー関数を使った次の式を入力し下方にオートフィルドラッグコピーします。

=IF(A2="","",名称(A2))

これでA列の数字1,2,3に応じてあ、い、う、などが表示されます。

関数を使うために次の式を入力します。

ユーザー定義関数の作成とその使い方をよく理解して作成することが必要でしょう。
例えば次のようにします。
「開発」タブで「Visual Basic」を選択します。
表示の画面の左側でModule1をクリックし、その上部にある「コードの表示」を選択します。
右側の画面には次のコードを入力します。

Function 名称(KATA As Integer) As String
Select Case KATA
Case Is = 1
名称 = "あ"
Case Is = 2
名称 = "い"
Case Is = 3
名称 = "う"
Case Else
名称 = KATA
End Select
End Function

コー...続きを読む

Q大量のレコードの中からデータ抽出する際にその抽出スピードを高速化させる方法は?

2004年9月8日こんにちは。
W2K/Access2Kを使用しています。
現在数百程度のレコード数をもつDBで、
検索・抽出作業(データ型が“メモ型”フィールドの中からのデータ抽出が主)を頻繁に行っています。
その抽出スピードは、今の所は気にならない程度ですが、将来そのデータ・レコード数が数万から数十万まで拡大した時のスピードの劣化が心配です。
そこで質問ですが、
1. スピードの劣化を最小限に留めるための一般的なDB構造上の工夫。
2. データのテーブルを独立Data Base“dbB”として、元々のData Base“dbA”と切り離し、dbBをdbAの参照用DBとしてのみ使う、という方法を聞きました。
この方法について、上記の目的(抽出スピードを上げる)にはどの程度効果的でしょうか? 
できればその具体的な方法を教えて頂けますと喜びます。以上宜しくお願いします。

Aベストアンサー

おっしゃるとおり、DBを分けてインデックスを貼る程度しかないと思いますが、数万から数十万にAccessがパフォーマンスを出せるとは思いません。

一般的にDBを見直す必要があるでしょう。
(例えば、OracleやMySQL、PostgreSQLなど)

QSELECTでOPTION多数の場合のselectedされたOPTION項目表示

あるフォームのなかでselectで選択し、submitしたデータを再度同一フォームで編集できるような画面を作っています。
selectのOPTIONの数が100ほどあり、selectの表示サイズをレイアウト上10に設定しています。
選択されたデータをDBから読み、そのOPTIONをselectedとしているのですが、
そのOPTIONが例えば上から80番目などにあると、
すでに何か選択されているのか、あるいは何も選択されていなかったのか、いちいちスクロールして確かめないとわかりません。

このような場合に、選択されている項目のOPTION selectedがselectの表示エリアの中にあらかじめ表示されるようにするにはどのようにしたら良いのでしょうか?

よろしくお願いします。

Aベストアンサー

javascriptを使用してみました。

<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
function window_onload() {
str = location.search;
str = str.substring(1,str.length);
if (str=="")
no=0;
else
no=parseInt(str);
select1.item(no).selected = true;
}
function submit1_onclick() {
txt = select1.selectedIndex;
window.location.href="select.htm?"+txt;
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="return window_onload()">
selectで選択した項目を自分に送る<br>
<P><SELECT id=select1 style="WIDTH: 172px" size=2 name=select1>
<OPTION value=aaaa>aaaa</OPTION>
<OPTION value=bbbbb>bbbb</OPTION>
<OPTION value=ccccc>cccc</OPTION>
<OPTION value=ddddd>dddd</OPTION>
</SELECT>
<INPUT id=submit1 type=submit value=Submit name=submit1 LANGUAGE=javascript onclick="return submit1_onclick()"></P>
</BODY>
</HTML>

>selectの表示サイズをレイアウト上10に設定しています。
サンプルでは2にしてます.
>いちいちスクロールして確かめないとわかりません。
JavaScriptのSelectedでは下のdddddも表示されるようです。

javascriptを使用してみました。

<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
function window_onload() {
str = location.search;
str = str.substring(1,str.length);
if (str=="")
no=0;
else
no=parseInt(str);
select1.item(no).selected = true;
}
function submit1_onclick() {
txt = select1.selectedIndex;
window.location.href="select.htm?"+txt;
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="return window_onload()">
selectで...続きを読む

QASPでDBから抽出した結果をCSVファイルに保存させる方法

ASPでデータベースにアクセスし、抽出した結果をCSVファイルに加工し保存させる・・・と言った方法を、もっとも簡単で、レスポンスのかからない方法ってありますか?

Aベストアンサー

<%

CSVFileName="testcsv.csv"

Response.ContentType = "text/csv"
Response.AddHeader "Content-Disposition","filename=" & CSVFileName
'CSVデータを作成
Response.Write "現場ID,現場名,氏名," & vbNewLine
Response.Write "1,本社,田中" & vbNewLine
Response.Write "2,大阪支店,鈴木" & vbNewLine
%>

てな感じでCSVのファイルになります。DBからはSQLで抽出したものを、上の例を書き換えて使えば使えるとおもいますが。。。


おすすめ情報