Чтобы использовать этот запрос в качестве подзапроса, проблема в том, что он возвращает много строк дубликатов. Пытался использовать COUNT() вместо существующего, но он все равно возвращает несколько ответов. Каждая таблица может содержать только одну запись superRef.sql function case возвращает более одной строки
Ниже запрос I`ll использовать в SELECT, col_a [случае] От MyTable
SELECT CASE
WHEN
EXISTS (SELECT 1 FROM A WHERE
A_superRef = myTable.sysno AND A_specAttr = 'value')
THEN 3
WHEN EXISTS (SELECT 1 FROM B
INNER JOIN С ON С_ReferenceForB = B_sysNo WHERE C_superRef = myTable.sysno AND b_type = 2)
THEN 2
ELSE (SELECT C_intType FROM C
WHERE C_superRef = myTable.sysno)
END
FROM A, B, C
результат:
3
3
3
3
3
3...
Нет условий соединения? Возможно, вы хотите СОЮЗ? Добавьте некоторые примеры данных таблицы и ожидаемый результат - также форматированный текст. – jarlh
Вы сами запускаете подзапросы? что они возвращают? – jambonick
Это крест. С 1000 записей за стол вы получаете 1 миллиард комбинаций. И для каждой строки этих многих записей вы снова запрашиваете таблицы - без какой-либо ссылки на соответствующую запись. Это, конечно, не то, что вам нужно. Так что же это вместо этого? Чего вы хотите достичь? –