HAVING句でSUMした値をチェックする>こんにちは、三流プログラマーのKen3です。レンタルサーバーもなんとか復旧したみたいです。読者からキツイ一言ももらいつつ、(オイオイ)今回は、SQLのHAVING句で集計関数SUMの値をチェックしてみます。下記の質問をもらいました。質問の回答も先入れ先出しダロ、前の質問はクリアしたのかよ。数量0のときの項目削除こんにちは。解答しやすいです、回答できるかもしれません。F_Bなんて感じで複数項目でフィールドを消すのか?それとも、クロス集計のクエリーで0項目をカットするのか?など、読みきれなかったので。--------------------------------------------------------------------なるほどね、A2とB1は、0だから、表示したくない。上期の表に0を出したくない。残念だけど、8月で取引終了、下期の表には0で載せたくない。そんな流れを勝手に想像。マスターにレコードあっても出したくない、そんな状況はありかなぁ。んっ?どこかでみた表だなぁと思ったら、http://www.ken3.org/cgi-bin/test/test076-2.aspで、UNIONでつなげてた表でしたね。T_月別売上.商品CDと、明細の表と集計値をUNIONでつなげてました。テストデータでB1の売上データ4月−9月を0にして明細を作成します。マフラーと冬物商品を作成して、4〜9月の売上無し、10月〜3月の下期に売上を作成。上期の表には、グループ小計も出したくない、そんな処理をやってみます。3.Whereで0を排除する*/普通に発行したSQLを発行して、集計するとhttp://www.ken3.org/cgi-bin/test/test076-2.aspみたいに、レコードがあるのでSUMで集計して0のデータも表示されます。※テーブルの作り構造問題は別にして、考えてくださいね。↑0データが表示されている表イメージさてと、上期の合計が0の場合、表示したくない。そんな条件を入れてみますか。条件?そうですね、条件を入れてみます。0以上の文を追加してみます。^^^^^^^^^^^^^^^^とANDにして、条件を追加します。0と、上期が0以上なんて感じでOKと思いテストを行います。以上の必要なパラメータの値が設定されていません。以上の必要なパラメータの値が設定されていませんってエラー、経験上、フィールド名が間違えている時に出てくる。0と、書いてかわしました。上期0のデータ行は、表示されなくなりました。小計が0のDグループが表示されてます。4.SUMの集計値をHAVING句でチェック0データをハジク*/さてと、グループ集計の0も表示させたくないよね。0の条件をWhereにANDで追加すればOKでしょ簡単簡単。本気かよ?やってみな。集計関数を使用することはできません。(エラー報告にムッと来つつ)えっ、なんでだよ。Where句って、フィールドに対しての条件だから、Sumとか集計関数は使えないんだってばさ。わかってたら言ってよ。三流プログラマーのクセに調子コイテルから、実際のエラー見たほうがいいんだよ。集計結果を絞り込むには、HAVING句に条件を書くんですよ。了解した?HAVING句?と驚いたフリをしつつ(オイオイ)下記のようなSQL文になります。Byでグループ化された結果に対して出力条件を付けたいときに、HAVING句を使用します。^^^^^^なんて感じで、HAVING句を記述します。http://www.ken3.org/cgi-bin/test/test088-2.aspでテストすると、やっと、目的の結果が得られると思います。</HTML>*/今回は、Where句やHAVING句で0を取り除いた出力のSQLを軽く書きました。今後とも、よろしくお願いします。何かの参考となれば幸いです。ASP、VBScript勉強中の三流プログラマーのKen3でした。ページフッターここまで、読んでいただきどうもです。三流君へメッセージを送る。下記のフォームからメッセージを送ることができます。気軽に書いてください(感想や質問・要望・苦情はHPで記事に載せることがあります。↓を選択してください。基本はデータの受け取りかなぁ。・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。テキストを読み出した。・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽くVBScriptでFormat関数が無いなど、微妙にVBAと違うけど[VBScript関数関係の説明]・・・少し、処理を書いてみた。[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。何かの参考となれば幸いです。バックナンバー目次]広告:。