2015-09-08 4 views
0

Я пытаюсь запросить транзакции, сделанные с помощью ID_NUMBER в TBL_TRANSACTIONS и требование, чтобы убедиться, что ID_NUMBER является существующим в TBL_ID_NUMBER.Subquery число в диапазоне

SELECT * 
FROM TBL_TRANSACTIONS 
WHERE ID_NUMBER IN (SELECT ?????? 
        FROM TBL_ID_NUMBER) 

Проблема заключается в том, что идентификационные номера находятся в диапазоне, например. 10-50, 51-90, 91-100 Есть ли способ, которым я могу запросить номер между этими двумя столбцами? Скажем, ID_NUMBER - 19?

TBL_ID_NUMBER (table) 
ID_FROM (column1) ID_TO (column2) 
10     50 
+0

случае, когда id между 10 и 50, тогда ... когда id между 51 и 90, то ... end – jarlh

+1

Пожалуйста, разместите свою структуру данных с данными в i t и ожидаемый результат – Matt

+0

Какая СУБД вы используете? Postgres? Oracle? –

ответ

0

Я не знаю, если U Мента это, но Heres предложение;)

SELECT * 
FROM TBL_TRANSACTIONS 
WHERE ID_NUMBER >= (SELECT ID_FROM 
        FROM TBL_ID_NUMBER 
        WHERE 
        ID_NUMBER = 19) 
AND ID_NUMBER <= (SELECT ID_FROM 
        FROM TBL_ID_NUMBER 
        WHERE 
        ID_NUMBER = 19) 

EDIT: Я не знаю вашу структуру БД так вот это другое предложение

SELECT * 
    FROM TBL_TRANSACTIONS 
    WHERE ID_NUMBER >= (SELECT ID_FROM 
         FROM TBL_ID_NUMBER 
         WHERE 
          ID_FROM <= 19 
         AND 
          ID_TO >= 19) 
    AND ID_NUMBER <= (SELECT ID_TO 
         FROM TBL_ID_NUMBER 
         WHERE 
          ID_FROM <= 19 
         AND 
          ID_TO >= 19) 
Смежные вопросы