• ベストアンサー

[ASP+SQL]絞込み済みのレコードセットを一気に計算、SUM?

こんにちわ。 ASP+SQLサーバで開発しています。 WHEREとFilterで絞込み済みの売上データがあるとします。 まぁ、明細とでもしましょうか。 rsURIAGE("SYOKEI") に小計が入っているとして、それらの数字を一気に加算、エクセルでいうSUMみたいなのってできませんか? ループさせて加算とか・・・あまりにも・・・。 そういうコマンドありません??

質問者が選んだベストアンサー

  • ベストアンサー
  • Te-Sho
  • ベストアンサー率52% (247/472)
回答No.2

SQL文でWHEREで抽出した合計が取れます。 select sum(列名) as sum_列名 from SYOKEI where 条件列名 = 条件値 group by 集計単位列; sum(列名) 合計 avg(列名) 平均 max(列名) 最大値 min(列名) 最小値 asの後ろで列名を指定してあげれば、そのレコードセットで取得できます。 例で行けば rsURIAGE.fields("sum_列名") ですね。 他にも有りますがその辺りはselect文を解説している資料等に記載されているはずです。

zenon55
質問者

お礼

完璧ですっ☆有難う御座いました!

その他の回答 (1)

  • hequil
  • ベストアンサー率65% (242/372)
回答No.1

lngSum = 0 Do Until rsURIAGE.EOF lngSum = lngSum + rsURIAGE("SYOKEI") rsURIAGE.MoveNext Loop みたいなことする以外に方法はないと思います。 私ならSQL文で初めから集計します。 #Filter利用時は無理ですが、そもそもFilter使うぐらいなら初めからWHERE句で絞り込んだ方が高速ですし。 SELECT SYOKEI, SUM(SYOKEI) AS SYOKEI_SUM FROM TBL_URIAGE とか? 以上、参考になれば幸いです。

zenon55
質問者

補足

早速のご回答有難う御座いました。 SQLで集計する方法に変更してみます・・・。

関連するQ&A

  • [ASP+SQLsrv]SUMしたのを表示したい・・・

    こんにちわっ☆ ASPとSQLサーバでWebアプリを開発しております。 SQLのSELECT文で式典の参加人数を計算しました。 ・・・SELECT文でSUM計算させたの初めてで・・・。 どうやったら計算結果使えるんですか!? Set rsSUM = Server.CreateObject("ADODB.Recordset")  rsSUM.Open "SELECT SUM(GOcust) FROM D_InvoiceDetail",dbConnection,3,2 としたものを・・・。 Response.Write rsSUM("SUM(GOcust)") ↑とか色々しましたが・・・。 どぉしたら使えますか・・・。 って、ひょっとしてめちゃ恥ずかしいこと聞いてる?? ううぅぅ。

  • SQL文の作り方、SUM関数を2回使いたいです。

    こんばんわ、SQL分の勉強をしています。以下のSQL文を見てください。 select sum(dat1) from daityou,book (SELECT book.author,book.bookname,book.money*daityou.cnt AS dat1 FROM book, daityou where book.bookname=daityou.bookname); 内容は、著者と本のタイトルと本ごとの売り上げの一覧表を作成し、さらに著者毎に売り上げを集計したいのですが、エラーになります。 どのような文を作成すればいいのでしょうか? SUM関数を2回使わなくてもいいです。 よろしくお願いします。

  • SQLでの時間計算

    こんにちは。 時刻関係の事でお聞きしたいことがあります。 SELECT ROUND(ROUND(SUM(労働時間)/100, 0) + MOD(ROUND(SUM(労働時間)/10, 2), ROUND(SUM(労働時間)/100,0))/ 6, 2) AS total FROM テーブル WHERE id = 対象者のID; とSQLを書き [15=0.25] [30=0.5] [45=0.75] と一つずつであれば、下記のように取得する事が取得する事が出来ました。 しかし労働時間テーブルに 1015 1045 と値がある場合、本来であれば[11.00]で表示されるはずが [23.83]という数字で表示されてしまいました。 解決方法が見出せない為、どうかお力・知恵をお貸し下さい。 よろしくお願いします。

  • [ASP]多重Filter?

    こんにちわぁ! SQLサーバ&ASPを使ってちょっとした画面表示を作っています。 その中でどぉしてもFilterを使って絞込みがしたいのです。 もちろん、1条件の場合は難なく絞り込めました! 例: Filterって2つ以上の条件でフィルタしたい場合どうすればいいですか? rsSAMPLE.Filter = "Category='001'" に、『Zaiko='5'』の条件を追加したい場合は・・・。 宜しくお願い致します!!

  • ASPからのSQL文でエラーが発生

    ASPでoracleのデータを集計しようとしたところ、SQL文でエラーが発生してしまいました。 (ORA-00911: 文字が無効です。) 同じSQL文を「SQLPlus Worksheet」で実行してみたら、問題なく実行できました。 エラーの原因を教えてください。 SELECT CASE WHEN 処理CD = '1' AND 集計F = 'Y' THEN '1Y' WHEN 処理CD = '1' AND 集計F <> 'Y' THEN '1N' END AS kubun, COUNT(連番) AS kensu SUM(金額) AS kingaku FROM aaa WHERE 日付 = '200701' GROUP BY CASE WHEN 処理CD = '1' AND 集計F = 'Y' THEN '1Y' WHEN 処理CD = '1' AND 集計F <> 'Y' THEN '1N' END kubun毎に金額の合計値などを集計したいというような感じです。 よろしくお願い致します。

  • Word2007 オートSUMのボタンが見当たりません

    Word2007で、表を作り、数字を入力しました。小計をしたいのですが、Σ:オートSUMのボタンが見当たりません。 [ツール]→[ユーザ設定]→[コマンド]→  (分類)[表/罫線]→(コマンド)[オートSUM]をメニューバーまで ドラッグする という回答を見つけましたが、ツールバーの出し方も分かりません。 宜しくお願いします。

  • 空白列と小計を一気に入れる方法はありますか?

    メーカーの商品ごとの合計売上金額を計算しています。 小計を出したいメーカーが100件ほどあります。 excelの知識がない為、今まで一件一件メーカーのコードごとに列を挿入し、その後さらに一件一件 sumで合計をいれていたんですが、なかなか大変です…。 メーカーごとに空白の挿入を一気に入れる方法と、小計の計算式を一気にコピーする方法があればお教えいただけませんでしょうか? よろしくお願いいたします。

  • 売り上げ集計SQLが作れません

    1つのTABLEに、1日の売上げ高を商品ごとに登録していくDBがあります。 簡単な構造は以下のとおりです。 日付       |A品売上額  |B品売上額 | 2008/11/01 |500000    |600000   | 2008/11/02 |450000    |800000   | 2008/11/03 |100000    |700000   | ・・・ 2008/11/30 |200000    |500000   | 2008/12/01 |300000    |100000   | <質問> それぞれの商品の1ヶ月売上高をSQLで抽出したいと思うのですが、Group byで何を指定したらいけるのかわからず困っています。 SQLで計算せずに抽出だけ行って、CGI側で計算するしかないのでしょうか? アドバイスお願いいたします。 <最初に考えたSQL(Group byがないためエラーになりました)> select sum(a),sum(b) from uriage where date between '2008/11/01' AND '2008/11/30';

  • 2つのテーブルの集計

    MySQLでSQLを書いている初心者です。 ある会社には卸売部門と小売部門があり、同一の商品を扱っています。 それぞれの売上明細は tbl_sales と tbl_retailsales で別になっています。 商品別の2つの部門の売上数量を1行で表現したいと考えています。 下のような感じです。 商品ID 商品名 卸売 小売 ========================= 00001  aaaa  100  10   00002  bbbb  200  13   00003  cccc  300  15   2つのSQLをUNIONでつなげてみましたが同一行に「卸売」「小売」が並んでくれません。 SELECT goodsId, goodsName, sum(quantity) FROM tbl_sales WHERE salesDate BETWEEN '2014-06-01' AND '2014-06-30' GROUP BY goodsId UNION SELECT goodsId, goodsName, sum(quantity) FROM tbl_retailsales WHERE retailSalesDate BETWEEN '2014-06-01' AND '2014-06-30' GROUP BY goodsId どのようにSQLを組み立てたらいいでしょうか。 教えて下さい。 よろしくお願いいたします。

  • 副問い合わせで複数の列を返す

    こんにちは、Makotoと申します。 SQLの副問い合わせで質問があるのですが、 現在のSQLは CREATE OR REPLACE VIEW VIWTEST AS SELECT KOMOKU1, KOMOKU2 (SELECT SUM(KOMOKU3) FROM TBL WHERE A = 1 (SELECT SUM(KOMOKU4) FROM TBL WHERE A = 1 (SELECT SUM(KOMOKU5) FROM TBL WHERE A = 1 FROM M_TBL; という感じのSQLなのですが、副問い合わせの所 が見ているテーブルも条件も一緒なので1つにまとめたいのですが、うまくいきません。CURSORという関数があったのですが、VIEWでは使用できませんでした。なにかよい方法はないでしょうか? 開発環境は oracle 9i(AIX) pro*C/C++ でおこなっています。

専門家に質問してみよう