• 締切済み

phpとsqlに関してです

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

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

>area=1 area=2と同じカラムを条件式に組み込めるのでしょうか? 条件式は「同じカラムjかどうかは不問ですので、問題ありません(もちろん or で繋ぐんですよね)。 >area=2の時はtotal(合計を)表示させる様にしたいのですが areaの値によってselectする内容が変わるということでしょうか?集計が必要ならば、基本的には「集計する」ようにselectを書いて、集計したくない条件のときには1行ごとに集計するように(つまり集計しないのと同じになる)工夫しないといけませんね。 select (case when area=2 then "total" else data_id end case) as keys, sum(val) as total from table where area=1 or area=2 group by keys

関連するQ&A

  • UPDATE文の副問い合わせ

    こんばんわ。 今少し書き方がわからないSQL文があって困っています。 テーブルA(データが入ってるテーブル)に 新規でカラムを追加したので、 今UPDATE文を使いたいと思っています。 膨大なので、1つ1つする訳にはいかないので、 条件指定して、あるカラムにあるとある条件に合致するものは 新規カラムの値が4とか ある条件なら、新規カラムの値が6などと入れたい感じです。 自分なりに調べて UPDATE テーブル名 SET 新規カラム = 値 WHERE (SELECT * FROM 同じテーブル名 WHERE 条件) だと思って色々書いたり試行錯誤したのですが、 全然できませn。 どのように書けばよろしいのでしょうか? またUPDATEをかける際の条件指定に2つの違った 条件(同じカラムの違う条件、または別カラムの条件) を入れることは可能でしょうか? 回答いただけるとありがたいです。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • オラクル+SQL Plus

    SELECT A FROM AAA WHERE ROWNUM<=5とSQLを実行すると 必ず5つ返ってくるとは限らないみたいで… テーブル名やフィールド名が分かっている状態で 何万件ものデータベースから指定した個数だけ返ってくるような SQL文があるのであれば教えてください。 個数さえ合っていれば順番は特に気にしません。 よろしくお願いします。

  • SQLについて

    SELECT テーブル名.A テーブル名.B FROM テーブル名 WHERE テーブル名.A = Y テーブル名.B = Z SELECT 別テーブル名.A 別テーブル名.B FROM 別テーブル という2つのSQLがあったとします。この時、別テーブルのSELECT文より取得してきた、AとBを上の式の条件(Y,Z)で両方同時に使用したい場合、どのようなSQLを書いたら良いのでしょうか? 1文にまとめて書く場合です。

  • SQL SELECT文について

    SQL、データベース関連の領域で、SELECT文の構文を学習しています。 WHEREの後の条件に使われる式として、以下の記載があるのですが、 具体例として、SELECT文があっての説明が無いので、式の意味、SELECT文 に、どのような形で出てきて、どのように解釈したらいいかの知識を習得出来 ません。御教授下さいますよう、御願い申し上げます。 LIKE"_野菜%" (意味) "野菜"を含む文字列。_は一文字、%は任意文字数のワイルドカード 宜しくお願い致します。

  • SQL文について

    テーブルの結合について教えてください。 (DBはオラクルです) select * from table1,table2 where table1.カラム名=table2.カラム名; で、結合が出来ることは分かりました。 やりたいことはテーブルの結合と、ある期間のデータを持ってきたいのです。 select カラム名 from table1 where カラム名 between '20020213' and '20020218'; で期間を決めて引き出すやり方も分かっています。 一度に結合と期間を決めて引き出すやりかたってどうすればよいですか? それとも不可能ですか? 教えてください。

  • select文でのデータの取り出し方法

    データベースに姓と名が別々に格納されていて SELECT文で姓と名を結合させて取り出したいのですがいい方法はありますか?教えてください。 ”横山”と”たかし”が別々のカラムに格納されています。”横山たかし”の形で取り出してwhere句の条件と一致させたいです。

    • ベストアンサー
    • MySQL
  • SQLでご助言いただきたく。

    テーブル名:AAA カラム: 'fname' ,ename テーブル名:BBB カラム: "id",fcode テーブル名:CCC カラム : "id",'fname',date 上記三つのテーブルAAA,BBB,CCCにそれぞれカラムがあります。 最終的に ename fcode date の3カラムを結合した状態でSELECTします。 ただし、条件として AAAのfname列とCCCのfname列を紐付けし、尚且つ BBBのid列とCCCのid列を紐付けし、尚且つ CCCのdate列が2012-10-31以上のものだけをSELECTしたいです。 上記を踏まえて下記二点ご質問致します。 (1)私が考えたSQL文は select a.ename ,bc.fcode ,bc.date from AAA a , (select b.fcode ,c.fname ,c.date from BBB b , CCC c where b.id = c.id and c.date >= '2012-10-31' ) bc where a.fname = bc.fname ; です。先にBBBとCCCから紐付けしその結果とAAAを紐付けしています。 このSQL文で間違いがないかどうか判定していただきたく。 (2)もっとスマートな書き方(短く書けるなど)がありましたら、 ご助言いただきたく。 ちなみにデータベースはオラクル仕様です。 宜しくお願い致します。

  • Oracle SQLの、where句内の条件文について教えてください。

    Oracle SQLの、where句内の条件文について教えてください。 下記SQLの(1)と(2)の記述文を教えてください。 (1)例:owner = sys,admin ownerがsysまたは、adminを抽出 (2)例:column_name = '*aaa*' column_nameに「aaa」が含まれているデータ SELECT owner, table_name,column_name FROM all_tab_columns WHERE (1)(Ownerを複数指定)   and (2)(column_nameに、●●が含まれるデータ)

  • InformixのSQL文Where句で

    マイナーなRDBS(?)なので回答をいただけるか不安ですが… InformixのSQL文(単純なSELECT文)で、以下のような 文の場合、検索条件はどのような解釈になるのでしょうか? select  count(*) from  テーブル名 where  カラム名 = ? です。 要は「?」が何を示すのかが分からないのです。 matches(Oracleでいうlike)の場合、Oracleの%が*に、 _(アンダースコア)が?になるらしいのですが、 = で完全一致で繋いださいにどうなるのかが分かりません。 ちょっとした情報でもよいので、ご教授お願い致します。

  • SQL構文でデータ抽出。

    欲しいデータのみを取得するステートメント (1)select カラム名 from テーブル名 where 条件; という構文を本で見つけたのですが… これの条件をテキスト入力に変更して DBから情報を引っ張ってくることは可能でしょうか?? 可能であればその構文を教えていただけますと幸いです。

専門家に質問してみよう