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

SQL Select HAVING句でSUMの集計値0円をハジク

Select T_月別売上.商品CD, T_商品.商品名,
 売上4,売上5,売上6,売上7,売上8,売上9,
 ([売上4]+[売上5]+[売上6]+[売上7]+[売上8]+[売上9]) AS 上期計
  From T_月別売上, T_商品
   Where T_月別売上.商品CD = T_商品.商品CD
    AND  ([売上4]+[売上5]+[売上6]+[売上7]+[売上8]+[売上9]) > 0
UNION ALL
Select Left([T_月別売上.商品CD], 1) & 'ZZZZ' AS GroupCD
 , '小計' AS Dummy商品名
 , Sum([売上4]) , Sum([売上5]) , Sum([売上6])
 , Sum([売上7]) , Sum([売上8]) , Sum([売上9])
 , Sum([売上4]+[売上5]+[売上6]+[売上7]+[売上8]+[売上9]) AS 上期計
  From T_月別売上, T_商品
   Where T_月別売上.商品CD = T_商品.商品CD
    Group By Left([T_月別売上.商品CD], 1) & 'ZZZZ'
     HAVING Sum([売上4]+[売上5]+[売上6]+[売上7]+[売上8]+[売上9]) > 0
Order By T_月別売上.商品CD
と、SQL文を作成してみた。
商品CD商品名売上4売上5売上6売上7売上8売上9上期計
A1コーラ12345621
A2オレンジ20456724
AZZZZ小計3279111345
B1スーパードライ426781037
B3黒ラベル6489101249
BZZZZ小計1061416182286

終了です。

DB内のデータを確認
DB:db072.mdb
確認用に発行したSQL:Select * From T_月別売上
商品CD売上4売上5売上6売上7売上8売上9売上10売上11売上12売上1売上2売上3
A1123456000000
A2204567000000
A30000002030201025
B14267810000000
B2000000123456
B364891012000000
C1111111000000
C2222222000000
D100000021010520
D2000000146310

DB内のデータを確認
DB:db072.mdb
確認用に発行したSQL:Select * From T_商品
商品CD商品名
A1コーラ
A2オレンジ
A3りんご
B1スーパードライ
B2モルツ
B3黒ラベル
D1コート
D2マフラー

コーヒーブレイク たまには寄り道、休憩も(↓広告です):
広告:[Blogで商品紹介] ← 足跡から人気を判断?
[本日発売の商品] ← 発売日が当日の商品を紹介、、、するが効果が無いので → [来週7日後] ← を作成して、検索の席取りで予約を狙ってます(テスト・試行錯誤中)

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

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

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

表示色の説明:ASP VBScriptは <% 〜 %>
キーワードはHAVING です。 <%@LANGUAGE=VBScript%> <html> <head> <title>SQL Select HAVING句でSUMの集計値0円をハジク</title> </head> <body> <h1>SQL Select HAVING句でSUMの集計値0円をハジク</h1> <pre> Select T_月別売上.商品CD, T_商品.商品名, 売上4,売上5,売上6,売上7,売上8,売上9, ([売上4]+[売上5]+[売上6]+[売上7]+[売上8]+[売上9]) AS 上期計 From T_月別売上, T_商品 Where T_月別売上.商品CD = T_商品.商品CD AND ([売上4]+[売上5]+[売上6]+[売上7]+[売上8]+[売上9]) > 0 UNION ALL Select Left([T_月別売上.商品CD], 1) & 'ZZZZ' AS GroupCD , '小計' AS Dummy商品名 , Sum([売上4]) , Sum([売上5]) , Sum([売上6]) , Sum([売上7]) , Sum([売上8]) , Sum([売上9]) , Sum([売上4]+[売上5]+[売上6]+[売上7]+[売上8]+[売上9]) AS 上期計 From T_月別売上, T_商品 Where T_月別売上.商品CD = T_商品.商品CD Group By Left([T_月別売上.商品CD], 1) & 'ZZZZ' <strong>HAVING Sum([売上4]+[売上5]+[売上6]+[売上7]+[売上8]+[売上9]) > 0</strong> Order By T_月別売上.商品CD </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("db072.mdb") db.open 'データベースを開く 'T_月別売上 から 商品コード、売上4〜9を取得する strSQL = "Select T_月別売上.商品CD, T_商品.商品名," strSQL = strSQL & " 売上4,売上5,売上6,売上7,売上8,売上9," strSQL = strSQL & "([売上4]+[売上5]+[売上6]+[売上7]+[売上8]+[売上9]) AS 上期計" strSQL = strSQL & " From T_月別売上, T_商品 " strSQL = strSQL & " Where T_月別売上.商品CD = T_商品.商品CD " '上期が0以上の条件を追加 strSQL = strSQL & " AND ([売上4]+[売上5]+[売上6]+[売上7]+[売上8]+[売上9]) > 0 " 'UNION ALL演算子をはさむ。 strSQL = strSQL & " UNION ALL" 'Sum集計関数で項目の合計を計算する strSQL = strSQL & " Select Left([T_月別売上.商品CD], 1) & 'ZZZZ' AS GroupCD " strSQL = strSQL & ", '小計' AS Dummy商品名 " strSQL = strSQL & ", Sum([売上4]) , Sum([売上5]) , Sum([売上6])" strSQL = strSQL & ", Sum([売上7]) , Sum([売上8]) , Sum([売上9])" strSQL = strSQL & ", Sum([売上4]+[売上5]+[売上6]+[売上7]+[売上8]+[売上9]) AS 上期計" strSQL = strSQL & " From T_月別売上, T_商品 " strSQL = strSQL & " Where T_月別売上.商品CD = T_商品.商品CD " strSQL = strSQL & " Group By Left([T_月別売上.商品CD], 1) & 'ZZZZ'" 'HAVING句に条件を書く strSQL = strSQL & " HAVING Sum([売上4]+[売上5]+[売上6]+[売上7]+[売上8]+[売上9]) > 0" 'Order By 商品CD と商品コードで並べ替える strSQL = strSQL & " Order By T_月別売上.商品CD" 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> 終了です。<br> </body> </html>

最近発売の雑誌を紹介する

今週発売の男性誌です。プログラミング以外にも興味を持って???
  1. カジカジ 2008年 06月号
  2. BEST CLUB (ベストクラブ) 2008年 06月号
  3. SpyMaster (スパイマスター) 東海版 2008年 06月号
  4. KING (キング) 2008年 06月号
  5. men's egg (メンズエッグ) 2008年 06月号
  6. Ollie (オーリー) 2008年 06月号
  7. BRUTUS (ブルータス) 2008年 6/1号
  8. Pen (ペン) 2008年 6/1号
  9. おとなの週末 2008年 06月号

データベースの書籍を紹介します

  1. [4798108405]- オラクルマスター教科書 Bronze Oracle Database 10g【SQL基礎I】編 (オラクルマスター教科書)
  2. [484432067X]- 徹底攻略ORACLE MASTER Bronze SQL基礎1問題集 (ITプロ/ITエンジニアのための徹底攻略)
  3. [4798111856]- 絵で見てわかるOracleの仕組み (DB Magazine SELECTION)
  4. [4798107980]- オラクルマスター教科書 Bronze Oracle Database 10g(DBA10g)編 (オラクルマスター教科書)
  5. [4883374092]- Access VBAプログラミング開発工房 入門・基礎編
  6. [4844322206]- 徹底攻略 ORACLE MASTER Silver DBA10g 問題集 (ITプロ/ITエンジニアのための徹底攻略)

Googleで関連項目を検索する

LANGUAGE=VBScript + [キーワード:HAVING] Sub|Function プログラム|プログラミング
↓で検索するとプログラムの例 Sub/Function でまとまったHP

Google

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

ASPでDBはMDBを使用して、SQL文を発行するサンプル

テスト実行とサンプルソース

ASP系、ADO使用、MDB接続、SQL発行、メルマガ解説リンク

[No.26 MDBファイルにアクセスしてみたADODB.Connection]
[No.27 SQL INSERT INTO文でデータの追加]
[No.28 SQL ORDER BYでデータの並べ替え]
[No.30 SQL SELECT文WHERE句を使って条件検索]
[No.32 SQL DELETE文でデータを削除してみた]

[No.33 SQL UPDATE文でデータを更新する]
[No.38 SQL GROUP BY句 で グループ化する]
[No.39 SQL GROUP BY句 で グループ化 集計結果を並べ替えする]
[No.40 MDBへのSQL文 Format関数使用]
[No.43 SQL文 HAVING句でGroup化されたレコードに条件設定する]

[No.44 MDBを使ったアンケート集計を作る]
[No.46 SQL文 SELECT WHERE句でIN演算子を使用して複数条件を選択する]
[No.47 いろいろな削除処理で遊んでみた(笑)]
[No.70 SQL Select DISTINCT キーワードで重複結果の出力をハジク]
[No.73 テーブルをつなげて商品名を取得する方法]

[No.74 演算フィールドを作成する]
[No.75 SQL UNION演算子 で 表をつなげたレコードセットの作成]
[No.76 小計・合計の表示、SQLで小細工の嵐(笑)]
[No.77 SQL AS演算子で別名管理]
[No.82 ページ単位の表示にチャレンジしてみた]

[No.83 Select TOP 20 と Select Top n PERCENT で遊ぶ]
[No.87 ADO SQL Like演算子で部分検索する]
[No.88 SQL HAVING句でSUMした値をチェックする]
[No.89 SQL 集計関数MAXと副問い合わせ(サブクエリー)]

三流解説とリンクページを紹介

ASP系の解説を項目ごとにまとめてみました

[ASP Form等を使用したデータのやり取り]
[ASP その他処理サンプル]
[ASP テキストファイル処理]
[ASP VBScript関数関係の説明]
[ASP ADOでMdbファイルを使う]
[ASP ADOでExcelと接続してみた]

その他:blogや広告↓
[日記的なblog]← あまり更新してないけど・・・
[三流なプログラムコード]← 恥ずかしいのであまり載せてないけど・・・
[通販商品の足跡を紹介] ←通販商品などを紹介してます


現在時刻は、2008/05/18 6:41:37です。
[Topへ戻る] −−>[ASP系へ戻る] −−>[バックナンバーを見る]