三流君(TOP)
/ASPで遊ぶ
/ASP記事一覧を見る
分類:
[Form関係]
/DB系ADOを使い(
[Mdb接続]
[CSV接続]
[Excel接続])
/[ASPでTextFileを操作]
/[VBScript関数ほか]
SQL サブクエリー(副問い合せ)を使い、最大値の行を表示してみる
テーブル名: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)"
と、サブクエリーで条件を付けたSQL文を作成してみた。
詳細はソースファイルを見てください。
noが一番大きい人は[あいうえお]さんです
数量が一番大きい人は[けんぞう]さんです
DB内のデータを確認
DB:db089.mdb
確認用に発行したSQL:Select * From kounyu
| ID | no | 名前 | 金額 | 数量 |
|---|
| 1 | 100 | Ken3 | 2000 | 5 |
| 2 | 20 | けんぞう | 100 | 200 |
| 3 | 250 | あいうえお | 1500 | 100 |
| 5 | 5 | かきくけこ | 55 | 55 |
| 6 | 10 | さしすせそ | 60 | 150 |
サブクエリーを使用したサンプル(ソースの紹介)
詳細解説は[http:/asp/backno/asp089.html]を見てください
下記、/cgi-bin/test/test089-2.aspのソース(中身)です
|
|
サブクエリー を 使った ソースコードを紹介する表示色の説明:ASP VBScriptは <% 〜 %> キーワードはサブクエリー です。
<%@LANGUAGE=VBScript%>
<html>
<head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<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>
| 商品:食品関係を紹介(広告)
食品 →の人気
-
ネスレ ワールドスイーツセレクション 220g×1袋 → 2月1日 最近販売
-
蒟蒻屋本舗 マヨール ゼロプラス 320g → 2月1日 伸び率UP
-
トルコ TAYAS社 チョコレート CRIEMRA500g → 1月31日 最近販売
-
コカ・コーラゼロ 1.5L×8本 → 1月31日 伸び率UP
-
和彩B (6粒入り) → 1月30日 最近販売
-
新潟県妙高市特産の香辛料「かんずり」 → 1月30日 伸び率UP
-
モロゾフ プティコフレ 《お届け日は2/12(日)まで》 MO-0856 1月29日 最近販売
-
新潟新井名物【生かんずり80グラム】 → 1月29日 伸び率UP
続き(一覧)を見る
|
Googleで関連項目を検索する
[キーワード:サブクエリー] と サンプル|解説|Dim|Set で検索
↓で検索して他のページも確認してみてください。
あれ?私のページが検索に載ってない(笑)一度お試しを(私のページに、また戻ってきてね(爆))
[Topへ戻る]
−−>[ASP系のTOPへ戻る]
−−>[記事一覧を見る]
リンク 三流君 ASP系 の 解説を項目ごとにまとめてみました
まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。
次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません
DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く
VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。
その他:blogや広告↓
[日記的なblog]← あまり更新してないけど・・・
[三流なプログラムコード]← 恥ずかしいのであまり載せてないけど・・・
[通販商品の足跡を紹介] ←通販商品などを紹介してます
現在時刻は、2012/02/10 2:35:53です。