- - PR -
同じカラムの値が同じで他カラムの値が異なるものの抽出について(MDB2003)
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-11 16:52
夏椰さん
長々と教えていただき、ありがとうございました ![]() ご提示いただいた内容で解決できました!! (かと思いましたが下に続く) [ メッセージ編集済み 編集者: birdfly 編集日時 2006-05-11 17:34 ] | ||||||||||||
|
投稿日時: 2006-05-11 17:18
申し訳ないです。もう一度教えていただけないでしょうか。
教えていただいたSQLをそのまま試したところ確かに値は返ってくるのですが、
の箇所を Test.EID in ( '1','2','5') AND iTest.EID in ( '1','2','5') と書き換えたところ値が返ってきませんでした。 iTest.EID in ( '1','2','5') が正しいと思うのですが、いかがでしょうか。 | ||||||||||||
|
投稿日時: 2006-05-11 17:58
あら、失礼。同じ文を書いていましたね。 で、私は仕様を知っているわけではないので、 何が本当に正しいのかわかりません。 で、結果から推測するにたぶんですが
はいらないと思います。 #じゃないと、期待した結果は取れないですから。 私が提示したSQLで「相関サブクエリ」ってやつと 「GROUP BY 〜 HAVING 〜」がキーポイントとなるんですが、 そのSQLの動きは理解されていますか? その内容が理解できていれば、 自分が思う条件を付加することは可能かと思います。 _________________ 夏椰 @ わんくま同盟 夏椰の庵 Microsoft MVP for Windows Server System - SQL Server ( Jul 2006 - Jun 2008 ) | ||||||||||||
|
投稿日時: 2006-05-11 18:35
すみません。あんまり理解していません。 サブクエリの中でもとの値を使えるとかですよね。 色々試してみましたが、Noを別の名称に変更すると うまく結果が返ってきませんでした。 やったこと: 1.テーブルのカラム名をNo,EID,GID→rec_id,EID,GIDに変更 2.ご提示いただいたSQLからNoをrec_idに修正 すると結果が返ってこなくなりました。 あと「相関サブクエリ」ってのが関係しているのかテーブルに 別名(AS なんとか)をつけると結果が返ってきませんでした。 ここまでくると自分で調べろって感じなのですが、 よくわかりませんでした。(もちろん調べながらやっています) なにかヒントをいただけないでしょうか。 よろしくお願いします。 [ メッセージ編集済み 編集者: birdfly 編集日時 2006-05-11 18:47 ] | ||||||||||||
|
投稿日時: 2006-05-11 18:51
このやったことによって出来上がったSQL文を 提示することは不可能でしょうか? | ||||||||||||
|
投稿日時: 2006-05-11 18:59
お手数をおかけします。
そうですね。先に提示するべきでした。 テーブル: ---------------------- rec_id オートナンバー(主キー) ← Noから名称変更 EID 長整数型 GID 長整数型 ----------------------
コード上は、おかしくないとは思うのですが。 よろしくお願いします。 | ||||||||||||
|
投稿日時: 2006-05-11 19:28
あ〜・・・・わかったかも。
こんな感じでどうでしょう?
| ||||||||||||
|
投稿日時: 2006-05-11 19:50
何度もありがとうございます。
試してみましたが、ヒットしないものがあるようです。 現在のデータを長いですけど貼り付けます。 ------------------------ rec_id EID GID 1 2 1062 2 2 1084 3 2 1124 4 2 1368 5 2 1653 6 2 1657 7 6 2066 8 7 2308 9 8 2769 10 2 2853 11 2 2905 12 2 2942 13 3 1062 14 3 3125 15 3 3072 16 3 3154 17 3 3186 18 3 3194 19 1 1062 20 1 1084 21 1 1124 22 1 1159 23 5 1062 24 5 1368 25 2 1657 26 1 445 27 5 907 28 1 1192 29 1 1192 30 5 1192 31 5 1315 32 5 1318 33 5 1331 34 5 1346 35 1 1346 36 5 1352 37 2 1352 38 5 1651 39 1 1651 40 1 1651 41 5 2001 42 1 2091 43 5 2091 44 1 2168 45 5 2168 46 5 2494 47 1 2494 48 2 2507 49 5 2507 50 1 2507 51 1 2555 52 5 2555 53 5 2643 54 5 2850 55 1 2851 56 1 2911 57 5 3098 58 1 3342 59 1 3342 60 1 3342 61 5 3351 ------------------------ rec_idが1,19,23のものはヒットするのですが、 48,49,50がヒットしないです。 ご提示いただいたSQLをそのまま実行しました。 なぜでしょう? |