サブクエリー を 使った ソースコードを紹介する表示色の説明:ASP VBScriptは <% 〜 %> キーワードはサブクエリー です。
<%@LANGUAGE=VBScript%>
<html>
<head>
<title>SQL サブクエリー(副問い合せ)を使い、最大値の行を表示してみる</title>
</head>
<body>
<h1>SQL サブクエリー(副問い合せ)を使い、最大値の行を表示してみる</h1>
<pre>
テーブル名:kounyu
ID no 名前 金額 数量
1 100 Ken3 2000 5
2 20 けんぞう 100 200
3 250 あいうえお 1500 100
5 5 かきくけこ 55 55
6 10 さしすせそ 60 150
とデータがあった時に、
・一番多く購入した人のデータ(数量が多い人)
を検索する場合
'数量が一番大きい人を探すため、
'MAX関数を埋め込んだサブクエリー付のSQL文を作成する
strSQL = "Select 名前 "
strSQL = strSQL & " From kounyu "
strSQL = strSQL & " Where 数量 = (Select MAX([数量]) From kounyu)"
</pre>
と、サブクエリーで条件を付けたSQL文を作成してみた。<br>
詳細はソースファイルを見てください。
<hr>
<%
'ADO DB Connection オブジェクトを作成する、英文そのままじゃん
Set db=Server.CreateObject("ADODB.Connection")
'データアクセスにはJet.OLEDB.4.0を使うことを設定
db.Provider = "Microsoft.Jet.OLEDB.4.0"
'次に、接続DBの位置を渡すので、Server.MapPathで変換して渡す
db.ConnectionString = Server.MapPath("db089.mdb")
db.open 'データベースを開く
'noが一番大きい人を探すため、
'MAX関数を埋め込んだサブクエリー付のSQL文を作成する
strSQL = "Select 名前 "
strSQL = strSQL & " From kounyu "
strSQL = strSQL & " Where [no] = (Select MAX([no]) From kounyu)"
Set rs = db.Execute(strSQL) 'SQL発行、レコードセットの作成
'データの表示
Response.Write "noが一番大きい人は[<b>"
Response.Write rs("名前") & "</b>]さんです<br>"
rs.Close '使い終わったのでクローズ
'数量が一番大きい人を探すため、
'MAX関数を埋め込んだサブクエリー付のSQL文を作成する
strSQL = "Select 名前 "
strSQL = strSQL & " From kounyu "
strSQL = strSQL & " Where 数量 = (Select MAX([数量]) From kounyu)"
Set rs = db.Execute(strSQL) 'SQL発行、レコードセットの作成
'データの表示
Response.Write "数量が一番大きい人は[<b>"
Response.Write rs("名前") & "</b>]さんです<br>"
rs.Close '開いていたレコードセットを閉じる
db.Close 'データベースも閉じようよ
Set db = Nothing 'お行儀よくオブジェクトも開放しましょう
%>
<hr>
</body>
</html>
| 最近発売の雑誌を紹介する
プログラミングと関係あるような無いような、ビジネス・経済の雑誌を紹介します。
- 株式にっぽん 2008年 5/15号
- 日経ビジネス Associe (アソシエ) 2008年 5/20号
- 起業塾 2008年 06月号
- 東洋経済 統計月報 2008年 06月号
- 近代セールス 2008年 5/15号
- オール投資 2008年 5/15号
- バンクビジネス 2008年 5/15号
- 食品工業 2008年 5/30号
- 経済 2008年 06月号
|