電子書籍の厳選無料作品が豊富!

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分では書けないのでしょうか?
教えてください

A 回答 (4件)

こんばんは。



補足ありがとうございます。
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

とりあえず取れますが、希望通りかどうか・・・。
(^^ゞ
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2005/03/19 11:42

条件のくっつけ方にもよりますが、


(1)Where句をOR条件で結ぶ
(2)UNIONでSELECT文を結合する
と、概ね大丈夫だと思いますよ。
    • good
    • 1

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



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;
;
    • good
    • 0

こんばんは。



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

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

この回答への補足

すみません 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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

今、見られている記事はコレ!