Не используйте HAVING
.WHERE
здесь более уместно.
SELECT field1, field2, (SELECT TOP 1 field1 from table1) as field3
FROM table2
WHERE (SELECT TOP 1 field1 from table1) > 0
Теперь я предполагаю, что у вас есть работа с WHERE
в подзапросе.Это использует значения из таблицы2.В противном случае вытащите этот запрос и присвойте значение переменной.
DECLARE @field3 AS INT --change this to the correct data type
SELECT TOP 1 @field3 = field1
FROM table1
SELECT field1, field2, @field3 as field3
FROM table2
WHERE @field3 > 0
Теперь делайте это только в том случае, если вам нужно вернуть пустой набор результатов.Если вам не нужен пустой набор результатов, мы можем исключить запрос все вместе.
DECLARE @field3 AS INT --change this to the correct data type
SELECT TOP 1 @field3 = field1
FROM table1
IF @field3 > 0
BEGIN
SELECT field1, field2, @field3 as field3
FROM table2
END