三流君のソースコード置き場

ブログにソースコードをアップして、ブログの検索機能で利用してます(利用予定です)

よく検索されるキーワード: [VBA]/ [VBS]/ [CreateObject]/ [Excel]/ [ADO]


asp089.html 三流君ASP:SQL 集計関数MAXと副問い合わせ(サブクエリー)

元の三流解説は、
三流君ASP:SQL 集計関数MAXと副問い合わせ(サブクエリー)
↑を見て、笑ってやってください。
ブログに過去のソースコードをアップして、ブログの検索機能で利用してます(利用予定です)
※古くさいコードが多いです・・・



SQL MAX関数 MAX(項目名) で 最大値を求める ソースコード

<%@LANGUAGE=VBScript%>
<html>
<head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<title>SQL MAX関数 MAX(項目名) で 最大値を求める</title>
</head>
<body>
<h1>SQL MAX関数 MAX(項目名) で 最大値を求める</h1>
<pre>
Select MAX(ID), MAX([no]), MAX(金額), MAX(数量)
  From konyu
</pre>
と、SQL文を作成してみた。
<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 'データベースを開く

  'MAX関数を使用したSQL文を作成する
  strSQL = "Select MAX(ID), MAX([no]), MAX(金額), MAX(数量) "
  strSQL = strSQL & " From kounyu "

  Set rs = db.Execute(strSQL) 'SQL発行、レコードセットの作成

  'データの表示をテーブルで行う
  Response.Write "<TABLE Border='1'>"

  '見出しを(フィールド名を)そのまま書き込む
  Response.Write "<TR>"
  For Each fld_A In Rs.Fields 'フィールドのアイテムに対してループ
     Response.Write "<TH>" & fld_A.Name & "</TH>"
     '↑.Nameでフィールド名を表示する
  Next
  Response.Write "</TR>"

  'お約束のEOFまでループは(データが無くなるまでループ)、
  Do While rs.EOF = False   'レコードセットの.EOFがFalseの間
    Response.Write "<TR>"   '内容を表示する
    For Each fld_A In Rs.Fields 'フィールドのアイテムに対してループ
       Response.Write "<TD>" & fld_A.Value & "</TD>"
       '↑.Valueでフィールドの値を表示する
    Next
    Response.Write "</TR>"
    '次のレコードにポインタを移動する
    rs.MoveNext    'これを忘れると悲惨なことに、、、
  Loop

  Response.Write "</TABLE>"  'テーブルは終わりです

  '後始末
  rs.Close '開いていたレコードセットを閉じる
  db.Close 'データベースも閉じようよ
  Set db = Nothing 'お行儀よくオブジェクトも開放しましょう

%>
<hr>
</body>
</html>

↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test089-1.asp実行する



SQL サブクエリー(副問い合せ)を使い、最大値の行を表示してみる ソースコード

<%@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>

↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test089-2.asp実行する


元の三流解説は、
三流君ASP:SQL 集計関数MAXと副問い合わせ(サブクエリー)
↑を見て、笑ってやってください。

ASPの解説 トップページは
三流君ASPで遊ぶ、失敗する
です。こちらもよろしく・・・



質問・感想・クレームなど、
気軽にコメント欄に書いてもらえるとうれしいです。

[Googleフォームにコメントを残す]
↑質問・コメントの入力フォームです、気軽に書いてください


フッター:最後にKen3Videoの動画一覧を紹介します

YouTubeにアップした動画です。他の動画を一瞬でも見てもらえるとさらに嬉しいです。
再生リスト:[三流君Ken3の最新動画]←リストの一覧形式で表示する


また、ブログを見に来てくださいね。ではまたぁ~