- PR -

カラム not found について

1
投稿者投稿内容
やまと
常連さん
会議室デビュー日: 2004/02/20
投稿数: 25
投稿日時: 2004-03-04 12:45
いつもお世話になっています。今回も宜しくお願いします。

servletからmysqlに接続し、項目を取得するのですが、項目がないといわれます。
実際のテーブルには項目が存在するのですが、
テーブル名.項目名とすると項目がないと言われます。

なぜでしょうか。
以下sql文とテーブルの構造です。

new StringBuffer(
"select s.tnt_dt as tnt_dt,"
+ "s.back_number as back_number,"
+ "m.j_name as j_name,s.sanka_flg as sanka_flg,s.mod_dt as mod_dt "
+ "from member m,sanka_actual s "
+ "where s.tnt_dt ='"
+ rsetTntDate.getString("tnt_dt")
+ "'and m.back_number = s.back_number "
+ " group by s.tnt_dt,s.back_number");

テーブル構成
+-------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------+------+-----+---------+-------+
| back_number | int(11) | | PRI | 0 | |
| tnt_dt | char(9) | | PRI | | |
| sanka_flg | char(1) | YES | | NULL | |
| mod_dt | date | YES | | NULL | |
+-------------+---------+------+-----+---------+-------+

宜しくお願いします。
taro
ぬし
会議室デビュー日: 2003/10/20
投稿数: 316
投稿日時: 2004-03-04 13:30
提示されているテーブルレイアウトはsanka_actualのものですよね。
もう1つのmemberテーブルにはj_name,back_numberがあるのでしょうか?
また、これはご質問と関係ありませんが、StringBufferを使用している意味が
あまりないように見えます・・・。
やまと
常連さん
会議室デビュー日: 2004/02/20
投稿数: 25
投稿日時: 2004-03-04 14:40
taroさん、回答ありがとうございます。
返信します。

>もう1つのmemberテーブルにはj_name,back_numberがあるのでしょうか?
あります。以下の通りです。

+-------------+----------+------+-----+------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+------------+-------+
| back_number | int(11) | | PRI | 0 | |
| back_name | char(30) | | | | |
| e_name | char(30) | | | | |
| j_name | char(30) | YES | | NULL | |
| div | char(30) | YES | | NULL | |
| del_flg | char(1) | YES | | NULL | |
| mod_dt | date | | | 0000-00-00 | |
+-------------+----------+------+-----+------------+-------+

>StringBufferを使用している意味が
>あまりないように見えます・・・。

まだjavaを勉強したてで、みようみまねで作成しています。
よろしければ、なぜ意味がないのかも教えていただけますでしょうか。

宜しくお願いします。
たーぞう
ぬし
会議室デビュー日: 2003/08/08
投稿数: 317
お住まい・勤務地: お花畑
投稿日時: 2004-03-04 15:01
ご質問の内容とは別件ですが、SQLに問題がありそうですね。
  group by s.tnt_dt,s.back_number
としておきながら、
  select ・・・, ・・・, m.j_name as j_name,s.sanka_flg as sanka_flg,s.mod_dt as mod_dt
なんてできないと思いますが。

もしかして group by は order by の間違い?

[ メッセージ編集済み 編集者: たーぞう 編集日時 2004-03-04 15:12 ]
taro
ぬし
会議室デビュー日: 2003/10/20
投稿数: 316
投稿日時: 2004-03-04 15:28
すみません、SQLを実行してみたところ、たーぞうさんの言うとおり、
エラーになりますね。気付きませんでした。
下記の記事が参考になると思います。(例4と同じエラーが発生します)

集計を行う「GROUP BY」句
http://www.atmarkit.co.jp/fnetwork/rensai/sql03/sql1.html

また、StringBufferはappendメソッドを使うことによって文字列を"+"で
結合しなくて済むのがメリットだと思いますので、"+"と併用するようでは
あまり意味がないのではないかと思います。分かりにくい書き方ですみません。
ご参考までに、StringBufferのjavadocを貼っておきます。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/StringBuffer.html
やまと
常連さん
会議室デビュー日: 2004/02/20
投稿数: 25
投稿日時: 2004-03-04 15:36
TAROさん、たーぞさんありがとうございます。
試してみます。

これからもいろいろアドバイスを頂けたら
幸いと思います。
取り急ぎお礼まで。
やまと
常連さん
会議室デビュー日: 2004/02/20
投稿数: 25
投稿日時: 2004-03-04 15:36
TAROさん、たーぞうさんありがとうございます。
試してみます。

これからもいろいろアドバイスを頂けたら
幸いと思います。
取り急ぎお礼まで。
1

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