|
|
Group By を 使った ソースコードを紹介する表示色の説明:ASP VBScriptは <% 〜 %> キーワードはGroup By です。
<%@LANGUAGE=VBScript%>
<html>
<head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<title>UNIONでつなげたテーブル(結果)をSUM Group Byする(集計する)</title>
</head>
<body>
<h1>UNIONでつなげたテーブル(結果)をSUM Group Byする(集計する)</h1>
UNION ALL 演算子でつなげ、複数テーブルをSelectして<br>
その結果に対して、SUM と Group By を使ってみた<br>
<pre>
Select 商品CD, SUM(売上金額) AS 合計金額 From
(
Select 商品CD, 売上金額 From T_2002年売上
UNION ALL
Select 商品CD, 売上金額 From T_2003年売上
UNION ALL
Select 商品CD, 売上金額 From T_2004年売上
)
Group By 商品CD
</pre>
と、()の中がUNIONでつなげた明細、これをSUM,Group Byすると?<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("db100.mdb")
db.open 'データベースを開く
'UNION で 3つのテーブルをつなげる
strSQL = "Select 商品CD, SUM(売上金額) AS 合計金額 From "
strSQL = strSQL & " ( "
strSQL = strSQL & " Select 商品CD, 売上金額 From T_2002年売上 "
strSQL = strSQL & " UNION ALL "
strSQL = strSQL & " Select 商品CD, 売上金額 From T_2003年売上"
strSQL = strSQL & " UNION ALL "
strSQL = strSQL & " Select 商品CD, 売上金額 From T_2004年売上"
strSQL = strSQL & " ) "
strSQL = strSQL & " Group By 商品CD "
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>
| 商品:2ヶ月後の予約関係を紹介(広告)
4月の人気
-
01日 ワンピース 海賊無双(通常版)(初回特典:オリジナルカスタムテーマ9種DLコード、ソーシャルゲーム専用レアフィギュア用コード同梱) - GAME ほか
-
31日 カーズ おしゃべりケータイ - ベビー&マタニティ ほか
-
31日 (PS VITA用)巻き取りUSB充電ケーブル - GAME ほか
-
30日 Coleman(コールマン) フリースレジャーシートワイド カモフラージュ 2000010656 - スポーツ ほか
-
30日 マジック:ザ・ギャザリング デュエルデッキ 「ヴェンセール vs. コス」 日本語版 - おもちゃ ほか
-
30日 Another 限定版 第1巻 [Blu-ray] - DVDアニメ ほか
-
29日 三国志大戦トレーディングカードゲーム 第1弾 ブースターパック BOX - おもちゃ ほか
-
29日 アイドルマスター 6(完全生産限定版) [Blu-ray] - DVDアニメ ほか
続き(一覧)を見る
|