• ベストアンサー

php sqlに関してです

SELECT文の中に SUM()と言うものを2つ入れても大丈夫なんでしょうか?

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5070/13246)
回答No.1

2つ入れても大丈夫ですよ。 SELECT SUM(a) AS sum_a, SUM(b) AS sum_b FROM hoge; とすれば、それぞれ a カラムと b カラムの合計が出ます。

bananaman12356
質問者

お礼

ありがとうございます

関連するQ&A

  • MSDEのSQLについて

    DB初心者です。 通常のAcceessで支障なく使っていた以下のようなSQL文がMSDEのビューではエラーがかかって使えません。原因と対応法を教えて頂けないでしょうか? < 「テーブル1」の「フィールド1」と「フィールド2」の相関係数を算出するSQL文 > SELECT (Sum(([フィールド1]-(SELECT AVG([フィールド1]) FROM テーブル1))*([フィールド2]-(SELECT AVG([フィールド2]) FROM テーブル1))))/Sqr(Sum(([フィールド1]-(SELECT AVG([フィールド1]) FROM テーブル1))^2)*Sum(([フィールド2]-(SELECT AVG([フィールド2]) FROM テーブル1))^2)) AS 相関係数 FROM テーブル1; これがMSDEだと下のようなエラーになります。 ADOエラー: 集計やサブクエリを含む式に対して集計関数を実行することは出来ません。 どうしたいいでしょうか? また、MSDEや易しいTransactSQLを習得する良い方法があればアドバイスを頂きたいのですが。

  • SQLのエイリアス

    select 1000 - sum(縦 * 横 * 高さ * table1.個数 * 10) As SIZE1, 2000 - sum(縦 * 横 * 高さ * table1.個数 * 10) As SIZE2, 3000 - sum(縦 * 横 * 高さ * table1.個数 * 10) As SIZE3 from table1 といったようなSQL文があったとします。 ○ - sum(縦 * 横 * 高さ * table1.個数 * 10)の中の、 sum(縦 * 横 * 高さ * table1.個数 * 10)は共通です。 この部分を共通化させる方法はあるのでしょうか? 例えばイメージとして、 string X = "sum(縦 * 横 * 高さ * table1.個数 * 10)" 1000 - X とやれば見やすいです。 SQLで上記のような方法が使えないのはわかるのですが、何か上手なやり方はあるでしょうか? 環境はMYSQL5.5 Win 7です。

    • ベストアンサー
    • MySQL
  • phpとsqlに関してです

    SELECT文で 同じデータベースのカラム名で WHEREで条件を指定するときに area=1 area=2と同じカラムを条件式に組み込めるのでしょうか? area=2の時はtotal(合計を)表示させる様にしたいのですが

    • 締切済み
    • PHP
  • SQL、2つのSQLを1つで表現するには?

    <<<<クエリ8>>>> SELECT book.author, book.bookname, book.money*daityou.cnt AS 式1 FROM book, daityou WHERE (((book.bookname)=[daityou].[bookname])); <<<<クエリ9>>>> SELECT クエリ8.author,sum(Expr1002) from クエリ8 group by author; として、ひとつのSQL文にするにはどうすればいいですか? よろしくお願いします。

  • SQLの書き方を教えて!

    select name,SUM(kingak) from where date between 150221 and 150320 group by frjpc.trcd のようにSUMで集計を行うSQLを発行する時に,同時にkingak順にsortすることは可能なのでしょうか? select name,SUM(kingak) from where date between 150221 and 150320 group by frjpc.trcd order by SUM(kingak) としたいところですが,これではエラーになりますね。 SQLでは解決できないんでしょうか?

  • 簡単なSQLを書くには?

    あるテーブルに列が40~50個ほど存在しており、そのテーブルに置いて合計を求めたいと考えております。 通常の方法であれば、 SELECT SUM(a1), SUM(a2), SUM(a3),.... `table` WHERE b1="0" OREDER BY c1 と書くのですが、列が40個もSUM()を書き続けるのが面倒なので何か簡単に合計を求めるSQLをご存じありませんでしょうか?

    • ベストアンサー
    • MySQL
  • 【再】2)-SQL文の書き方を教えてください。

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=694458 先日この問題で投稿しましたが、未完成のため、再度要望を整理し、ご指導をお願いいたします。 W←tabel名:名称、日付、数量 明細データ:     名称   日付    数量 A   2003/10/01   200 B   2003/10/03   500 C   2003/10/10   4000 A   2003/10/03   200 A   2003/10/03   100 C   2003/10/15   100 B   2003/10/15   300 C   2003/10/15   50 B   2003/10/15   60 求めているクエリーのイメージ:    2003/10/15 時点 ================================================ 名称     当日数量     当月数量     A          0       300     B         360       860     C         150       4150 ------------------------------------------------- 先日教えてもらったSQL文、希望のクエリーを作れないです。 -------------------------------------------------- select 名称, sum(AAA) as 当日数量, sum(BBB) as 当月数量 from ( select 名称, 0 as AAA, sum(数量) as BBB from W where 日付 >= #2003/10/01# and 日付 <= #2003/10/15# group by 名称 union select 名称, sum(数量) as AAA, 0 as BBB from W where 日付 = #2003/10/15# group by 名称 ) group by 名称; このSQL文は、2番目のSelectのところでエラーが出る (From句の構文エラーです) -------------------------------------------------- 後、Accessバージョンによって、SQL文が変わるでしょうか?当方は、Access97を使っている。 ご指導をお願いいたします。

  • SQLで分からないことがあります。

    仕入明細テーブル 伝票NO   インデックス番号   部数 出費詳細テーブル 伝票NO  出費先  出費額 以上のデータがあります。 仕入明細テーブルでインデックス番号でグルーピング化して部数の合計値が2000以上のインデックス番号と同じ値の出費詳細テーブルの伝票NOのレコードを削除しなさい。 delete 出費詳細 where 伝票NO in (select インデックス番号, sum(部数) from 仕入明細             group by インデックス番号             having sum(部数) >= 100); これだと出来ませんよね? sum(部数)が100以上のものを抽出するためにはselectでsum(部数)としなくてはいけないのですが これだとダメですよね?伝票NOと同じか比較するのインデックス番号なので、selectでsum(部数)としないのは可能でしょうか?

  • SQL Server 2008 0で除算ができません。

    はじめまして、初投稿です。 初歩的な質問となるかもしれませんが、お答えください。 SQL Server Reporting Service 2008を使用しております。 表の中で率を計算し、出力する際に、 0で除算しましたとエラーが出てしまいます。 以下、設定内容です。 ■解決目標■ プレースホルダにて、率を出力したい(クエリ内では行わない) ■プレースホルダ プロパティ■ =IIF(sum(Fields!案件数.Value)=0,0,sum(Fields!受注件数.Value)/sum(Fields!案件数.Value)) ■クエリ■ select isnull(SUM(orders),0) as '受注件数', isnull(SUM(loss),0) as '失注件数', isnull(SUM(orders),0)+isnull(SUM(loss),0) as '案件数' from ~ ■エラー文■ 警告 1 [rsRuntimeErrorInExpression] textrun '受注率.Paragraphs[0].TextRuns[0]' の Value 式にエラーが含まれています。0 で除算しようとしました。 できましたら、早急なご回答をお願いいたします。

  • SQL文に関するとある問題について

    SQL文に関するとある問題について (3) 次の出庫記録の表に対して、以下のSQL文を実行したときに得られる値が 最も大きな数が得られるものは何ですか? 該当する記号を書いてください。 --------------------------------------------------------------- 商品番号 数量 日付 PRT145 4 20090610 DP255 2 20090610 DP266 3 20090611 PRT255 2 20090611 a SELECT MAX(数量) FROM 出庫記録 b SELECT AVG(数量) FROM 出庫記録 WHERE 日付='20090610' c SELECT COUNT(*) FROM 出庫記録 d SELECT SUM(数量) FROM 出庫記録 WHERE 日付='20090611' ------------------------------------------------------------ この場合、それぞれの選択肢が出す数字は a=1 b=3 c=4 d=5 なので、正解はdでいいんでしょうか? aのMAXって、最大なのはPRT145の数量4ですが、a=に4をいれるべきか、それともMAXなのはPRT145一つだけなので1にすべきか、まずそこで躓きました。 bのAVGは4+2=6なので、それの半分の3かな? cはそのまんま4にして dはSUMなんで、3+2=5.にしちゃいましたが、間違ってるでしょうか?   宜しくお願い致します。