Classic ASPテストページです。
情報が古いので参考程度に読んだりテストしてみてください。
共有サーバーなので、処理に時間がかかるとタイムアウトやアクセスが集中すると落ちている時がありますがご勘弁を・・・

三流君(TOP) /ASPで遊ぶ /ASP記事一覧を見る

分類: [Form関係] /DB系ADOを使い( [Mdb接続] [CSV接続] [Excel接続]) /[ASPでTextFileを操作] /[VBScript関数ほか]

SQL Count関数を使用したサブクエリーを埋め込み順位を求める

Count関数を使用したサブクエリーを埋め込み、
顧客別のコード順に順位を振ってみます
作成するSQL文↓
strSQL = "Select ID, 顧客, 購入商品, "
strSQL = strSQL & " (Select Count(*) From T_DATA AS T_TEMP "
strSQL = strSQL & "   Where T_TEMP.顧客 = T_DATA.顧客 "
strSQL = strSQL & "    And  T_TEMP.購入商品 < T_DATA.購入商品) AS 順位"
strSQL = strSQL & " From T_DATA"

発行するSQL文
Select ID, 顧客, 購入商品, (Select Count(*) From T_DATA AS T_TEMP Where T_TEMP.顧客 = T_DATA.顧客 And T_TEMP.購入商品 < T_DATA.購入商品) AS 順位 From T_DATA
ID顧客購入商品順位
1顧客1商品A0
2顧客1商品B1
3顧客2商品B0
4顧客2商品C1
5顧客3商品A0
6三流君VBA解説本3
7三流君DVD2005年横浜優勝1
8三流君ASP入門0
9三流君SQLの技2

↑なんとか顧客別に順位を振れたのかな
↓テストデータ↓

DB内のデータを確認
DB:db105.mdb
確認用に発行したSQL:Select * From T_DATA
ID顧客購入商品
1顧客1商品A
2顧客1商品B
3顧客2商品B
4顧客2商品C
5顧客3商品A
6三流君VBA解説本
7三流君DVD2005年横浜優勝
8三流君ASP入門
9三流君SQLの技


Countを使用したサンプル(ソースの紹介)

詳細解説は[http:/asp/backno/asp105.html]を見てください
下記、/cgi-bin/test/test105-1.aspのソース(中身)です

Count を 使った ソースコードを紹介する

表示色の説明:ASP VBScriptは <% 〜 %>
キーワードはCount です。 <%@LANGUAGE=VBScript%> <html> <head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis"> <title>SQL Count関数を使用したサブクエリーを埋め込み順位を求める</title> </head> <body> <h1>SQL Count関数を使用したサブクエリーを埋め込み順位を求める</h1> Count関数を使用したサブクエリーを埋め込み、<br> 顧客別のコード順に順位を振ってみます<br> 作成するSQL文↓<br> <pre> strSQL = &quot;Select ID, 顧客, 購入商品, &quot; strSQL = strSQL &amp; &quot; (Select Count(*) From T_DATA AS T_TEMP &quot; strSQL = strSQL &amp; &quot; Where T_TEMP.顧客 = T_DATA.顧客 &quot; strSQL = strSQL &amp; &quot; And T_TEMP.購入商品 &lt; T_DATA.購入商品) AS 順位&quot; strSQL = strSQL &amp; &quot; From T_DATA&quot; </pre> <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("db105.mdb") db.open 'データベースを開く ' strSQL = "Select ID, 顧客, 購入商品, " strSQL = strSQL & " (Select Count(*) From T_DATA AS T_TEMP " strSQL = strSQL & " Where T_TEMP.顧客 = T_DATA.顧客 " strSQL = strSQL & " And T_TEMP.購入商品 < T_DATA.購入商品) AS 順位" strSQL = strSQL & " From T_DATA" Response.Write "発行するSQL文<br>" Response.Write Server.HTMLEncode(strSQL) & "<HR>" Set rs = db.Execute(strSQL) 'データの表示をテーブルで行う 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> ↑なんとか顧客別に順位を振れたのかな<br> ↓テストデータ↓<br> </body> </html>


Googleで関連項目を検索する

[キーワード:Count] と サンプル|解説|Dim|Set で検索
↓で検索して他のページも確認してみてください。

Google

あれ?私のページが検索に載ってない(笑)一度お試しを(私のページに、また戻ってきてね(爆))

[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]← あまり更新してないけど・・・
[永遠の下書き日記?]← 恥ずかしいのであまり載せてないけど・・・
[ひとりで掲示板?] ←一人で?掲示板?ぉぃぉぃ


[Topへ戻る] −−>[ASP系のTOPへ戻る] −−>[記事一覧を見る]

現在時刻は、2018/09/21 12:12:28です。