- PR -

SQL文において

投稿者投稿内容
moko
常連さん
会議室デビュー日: 2003/08/22
投稿数: 25
投稿日時: 2004-03-18 13:28
SQL文の書き方についての質問なのですが、例えば

1.テーブルAの中にフィールドXがあり、フィールドXの中の値が100・200・300・400
と4つ値があったとして、その内の3つの値(100・200・300)のみを合計したデータをとりたい場合はどうしたらよいのでしょうか?

2.フィールドYがあり、その中に名称Bのデータが5つあった時、5つを1まとまりにするには同書けば良いのでしょうか?

よろしくお願いします。
Cluster
ぬし
会議室デビュー日: 2003/03/06
投稿数: 289
お住まい・勤務地: 大阪
投稿日時: 2004-03-18 13:37
1. select sum(X) from A where X in (100,200,300);
2. select distinct Y from ・・・・

# ごく初歩的なことなんで、こんなところで質問するより、入門書などでちゃんと
  勉強することをお勧めします。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-03-18 13:41
1.
"X = 100 OR X = 200 OR X = 300"
とWHERE句に付けてSUM(X)で取ればOKです。

2.
"GROUP BY Y"
とGROUP BYを使ってグループ化しましょう。

-----------
そうか、INってのがあるんだ。


[ メッセージ編集済み 編集者: 一郎 編集日時 2004-03-18 13:42 ]
moko
常連さん
会議室デビュー日: 2003/08/22
投稿数: 25
投稿日時: 2004-03-18 13:57
ご回答のほど、ありがとうございます。本を読む時間がないために、こちらに書かせていただきました。すいませんでした。
もう1つ、お伺いしたいのですがさっきの1の質問で、DB上にあるデータで例えばフィールドXに1万件データがあったとして、その中にデータa(家賃)・データb(敷金)・データc(礼金)が繰り返し並んでいたとし、3つのデータを合計して、欲しい合計金額だけを抽出するSQL文なんて書けるのでしょうか?
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-03-18 14:24
 それは、本来列として扱うデータではなく行として扱うデータではないのですか?
焼きそば
ベテラン
会議室デビュー日: 2002/11/06
投稿数: 86
お住まい・勤務地: 東京
投稿日時: 2004-03-18 14:24
引用:

dummyさんの書き込み (2004-03-18 13:57) より:
もう1つ、お伺いしたいのですがさっきの1の質問で、DB上にあるデータで例えばフィールドXに1万件データがあったとして、その中にデータa(家賃)・データb(敷金)・データc(礼金)が繰り返し並んでいたとし、3つのデータを合計して、欲しい合計金額だけを抽出するSQL文なんて書けるのでしょうか?



フィールドはXだけではないのでは?
データa(家賃)・データb(敷金)・データc(礼金)が何に結びついているか、
ようするにフィールドXを持つテーブルにユニークキーが別にあると思いますが?

それがわかればSUM関数を使えば期待したSQLを書けると思います。
moko
常連さん
会議室デビュー日: 2003/08/22
投稿数: 25
投稿日時: 2004-03-18 14:56
回答ありがとうございます。
一応、テーブルAの中のフィールドe(契約番号)がプライマリキーとなっています。
そうした場合、選択された契約番号の物のデータa(家賃)・データb(敷金)・データc(礼金)を合計したのを抜き出すにはどうすれば良いのでしょうか?
現在やってみたら、a(家賃)・データb(敷金)・データc(礼金)×3レコード出てしまっています。
焼きそば
ベテラン
会議室デビュー日: 2002/11/06
投稿数: 86
お住まい・勤務地: 東京
投稿日時: 2004-03-18 15:01
引用:

dummyさんの書き込み (2004-03-18 14:56) より:
回答ありがとうございます。
一応、テーブルAの中のフィールドe(契約番号)がプライマリキーとなっています。
そうした場合、選択された契約番号の物のデータa(家賃)・データb(敷金)・データc(礼金)を合計したのを抜き出すにはどうすれば良いのでしょうか?
現在やってみたら、a(家賃)・データb(敷金)・データc(礼金)×3レコード出てしまっています。


eだけでは重複エラーになりませんか?
他にもう一つキーがあると思いますが。

SELECT SUM(X) AS 合計 FROM A GROUP BY e,もう一つのキー

で期待する回答が得られると思いますが、
後々のためにSQLのSUM、GROUP BYを自分なりに理解してください。

#GROUP BY句 修正

[ メッセージ編集済み 編集者: 焼きそば 編集日時 2004-03-18 15:03 ]

スキルアップ/キャリアアップ(JOB@IT)