Как проверить 2 значения, где условие - PullRequest
0 голосов
/ 16 октября 2011

Использование SQL Server

Я хочу проверить два значения в двух таблицах.

У меня есть два целых значения (значение1, значение2)

Table1

ID Value

001 200
002 300
...

Table2

ID Value

001 300
002 400
...

Теперь я хочу проверить, совпадают ли value1 и value2 со значением table1 и table2

Пробный запрос

SELECT value from table1 Where  id = '" & textbox1.Text & "'

Состояние

Я хочу проверить, совпадает ли значение1 с таблицей1 или таблицей2, а затем значение2 совпадает с таблицей1 или таблицей2. Если оно совпадает, тогда покажите значение, иначе ноль.

Как сделать запрос.

Нужна помощь с запросом

Ответы [ 3 ]

1 голос
/ 16 октября 2011
SELECT
    MAX(T1.ID)
FROM
    (
    SELECT TOP 1 ID
    FROM table1 WHERE value = @Value1
    ORDER BY ID
    ) T1
    JOIN
    (
    SELECT TOP 1 ID
    FROM table2 WHERE value = @Value2
    ORDER BY ID
    ) T2 ON T1.ID = T2.ID

Примечания:

Для последнего пункта, если вы хотите любое совпадение

SELECT
   MAX(1)
FROM
    (
    SELECT TOP 1 ID
    FROM table1 WHERE value = @Value1
    ORDER BY ID
    ) T1
    CROSS JOIN
    (
    SELECT TOP 1 ID
    FROM table2 WHERE value = @Value2
    ORDER BY ID
    ) T2
0 голосов
/ 16 октября 2011

Если я вас правильно понимаю, вы можете использовать UNION для этого.

SELECT  *
FROM    (
          SELECT ID, Value, 'Table1' AS Source
          FROM   Table1
          UNION ALL
          SELECT ID, Value, 'Table2'
          FROM   Table2
        ) u
WHERE   u.Value IN (@Value1, @Value2)
0 голосов
/ 16 октября 2011

Обычно я добавляю запрос в виде строки, не объединяя его ..

SELECT * FROM ...etc WHERE id=@id AND networktag=@networktag

затем обработайте ID, используя параметр в команде (т.е. экземпляр SqlCommand в C #) это в основном с использованием C #, и я думаю, что это легко сделать в VB

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...