こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

複数の検索結果をSELECT条件にしたい

SELECT
KANRI_NO
,EDA_NO
,NO_S
,NO_E
FROM
KANRI_TBL
WHERE
KANRI_NO='1'
ORDER BY EDA_NO;
の検索結果が、

KANRI_NO ,EDA_NO ,NO_S ,NO_E
1 , 1 , 1 , 10
1 , 2 , 52 , 60
1 , 3 , 90 , 99

のような結果をVBで、
SELECT
 *
FROM
SYOSAI_TBL
WHERE
BETWEEN 1 AND 10
BETWEEN 52 AND 60
BETWEEN 90 AND 99;
のような形の編集しています。

これをひとつのSQL分では書けないのでしょうか?
教えてください

投稿日時 - 2005-03-16 19:56:55

QNo.1273246

困ってます

質問者が選んだベストアンサー

こんばんは。

補足ありがとうございます。
1箇所だけ不明ですが、下記のような感じですね。

SELECT *
FROM SYOSAI_TBL,
(SELECT NO_S, NO_E
FROM KANRI_TBL
WHERE KANRI_NO = '1') AS KANRI
WHERE SYOSAI_TBL.???(←これが何かわからない・・・)BETWEEN KANRI.NO_S AND KANRI.NO_E

とりあえず取れますが、希望通りかどうか・・・。
(^^ゞ

投稿日時 - 2005-03-18 21:07:38

お礼

ありがとうございます。
助かりました。

これからも、がんばって勉強していきたいと思います。
回答くださった方、ありがとうございました

投稿日時 - 2005-03-19 11:42:19

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

条件のくっつけ方にもよりますが、
(1)Where句をOR条件で結ぶ
(2)UNIONでSELECT文を結合する
と、概ね大丈夫だと思いますよ。

投稿日時 - 2005-03-17 01:11:11

不足する情報を妄想して答えると、こんな感じでしょうかね。

select SYOSAI_TBL.* from KANRI_TBL,SYOSAI_TBL
where SYOSAI_TBL.NO between KANRI_TBL.NO_S and KANRI_TBL.NO_E
order by KANRI_TBL.EDA_NO;
;

投稿日時 - 2005-03-16 21:21:10

ANo.1

こんばんは。

VB側の処理が、イマイチ不明なんですが・・・。
どのカラムをBETWEENで抽出しているのでしょうか?
BETWEENの結果をORでくっつけるような感じに見えるのですが・・・。

もう少し補足をお願いします。
(^^ゞ

投稿日時 - 2005-03-16 20:14:21

補足

すみません PGはじめたばかりで質問の仕方がうまくなくて
VBでのソースです。
DIM SQL AS STRING =""
SQL= SQL & "SELECT KANRI_NO ,EDA_NO ,NO_S ,NO_E"
SQL= SQL & "FROM"
SQL= SQL & " KANRI_TBL"
SQL= SQL & "WHERE"
SQL= SQL & " KANRI_NO='1'"
SQL= SQL & "ORDER BY EDA_NO;"

Dim CMD As New OracleCommand(SQL, con)
Dim Rdr As OracleDataReader = CMD.ExecuteReader

DIM SQL2 AS STRING =""

While Rdr.Read
if SQL2 <> "" THEN SQL2 = SQL2 & " OR "
SQL2 = SQL2 & " BETWEEN " & Rdr.Item("NO_S") & " AND " & Rdr.Item("NO_E")
End While

SQL2= "SELECT * FROM SYOSAI_TBL WHERE " & SQL2 & ""
今は、こんな感じで再度SQLを流しているのですが
はじめのSQlに結合して、1SQLでできないかと

投稿日時 - 2005-03-17 09:07:56