- - PR -
SELECT文の条件文について質問です
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-05-15 15:52
SELECT * FROM Bテーブル C WHERE C.CARE_SEQ = SELECT MAX(B.CARE_SEQ) FROM Aテーブル A,Bテーブル B WHERE A.TARGET_DT BETWEEN B.CARE_VAL_FR_DT AND B.CARE_VAL_TO_DT ではいけませんか? | ||||||||
|
投稿日時: 2007-05-15 16:17
http://www.atmarkit.co.jp/fnetwork/rensai/sql01/sql1.html
この連載を一通り読んだ方が良いと思いますよ | ||||||||
|
投稿日時: 2007-05-15 21:47
YASUYOKAさん返信ありがとうございます〜 C.CARE_SEQ = SELECT MAX(B.CARE_SEQ) FROM T_TEST1 A,T_TEST2 B * 行3でエラーが発生しました。: ORA-00936: 式がありません。 と言われてしまいました。
NAOさん参考URLありがとうございます。 時間を作って読んでみます。 | ||||||||
|
投稿日時: 2007-05-15 21:58
saki1208です。
C.CARE_SEQ = (SELECT MAX(B.CARE_SEQ) FROM T_TEST1 A,T_TEST2 B) ()でくくる必要があるのではないでしょうか。 #レスをヒントにマニュアルぐらいは見ましょう。 [ メッセージ編集済み 編集者: saki1208 編集日時 2007-05-15 21:59 ] [ メッセージ編集済み 編集者: saki1208 編集日時 2007-05-15 22:00 ] | ||||||||
|
投稿日時: 2007-05-17 18:03
気になったのですが、Aテーブルのレコードは常に1行なんでしょうか?
| ||||||||
|
投稿日時: 2007-05-18 10:29
saki1208さんレスありがとうございます。 ()で括ってもエラーが出たので分からなくなってしまいました。。。
ノラさんレスありがとうございます。 自分で考えてみた結果、以下のようになりました。 (SELECT A.TARGET_DT,MAX(B.CARE_SEQ) AS MAX_SEQ FROM T_TEST1 A ,T_TEST2 B WHERE A.TARGET_DT BETWEEN B.CARE_VAL_FR_DT AND B.CARE_VAL_TO_DT GROUP BY AA.TARGET_DT) AA サブクエリでMAXのCARE_SEQを取得し、 WHEREの後で、 AA.MAX_SEQ = T_TEST2.CARE_SEQ T_TEST2から直接取得するようにして、動きました。 これから、NAOさんがしてくれたのレスのHPを全部読んできます。 皆さんありがとうございました。 | ||||||||
|
投稿日時: 2007-05-30 19:07
Select Max(CARE_SEQ) From
( SELECT B.CARE_SEQ FROM T_TEST1 A ,T_TEST2 B WHERE A.TARGET_DT BETWEEN B.CARE_VAL_FR_DT AND B.CARE_VAL_TO_DT ) AS table1 |