Короче говоря ...
Я создаю веб-приложение, в котором пользователь может выбрать любую комбинацию из примерно 40 параметров.Однако для получения одного из желаемых результатов (опыта инвестирования) мне нужно извлечь информацию из другой таблицы и сравнить значения в шести разных столбцах (фондовый опыт, паевые инвестиционные фонды и т. Д.) И получить только самое высокое значение из шести.для этой конкретной записи.
Это не проблема.Проблема в том, что во время выполнения мой запрос на поиск инвестиционного опыта не обязательно знает идентификатор учетной записи.Учитывая, что сканирование таблицы принесет более полумиллиона клиентов, это не вариант.Итак, что я пытаюсь сделать, это отредактировать копию моего основного динамически созданного запроса, но вместо того, чтобы возвращать более 30 столбцов, он просто вернет 2, accountid и experienceid (который является PK для таблицы опыта), поэтому яможет сделать дело о фильтрации.
Некоторые из вас могут определять динамический SQL немного по-другому, чем я.Мой запрос - это строка, которая в зависимости от аргументов, отправляемых в мою процедуру, в части предложения where будут включаться или выключаться переключателями.В конце я выполняю, все это делается на стороне сервера, и все, что делает веб-приложение, - это отправляет массив аргументов моему процессу.
Мой упрощенный код выглядит по существу так:
declare @sql varchar(8000)
set @sql =
'select [columns]
into #tempTable
from [table]
[table joins]' + @dynamicallyBuiltWhereClause
exec(@sql)
после этой части я пытаюсь использовать #tempTable для процесса фильтрации инвестиционного опыта, но получаю ошибку, сообщающую, что #tempTable не существует.
Любая помощь будет принята с благодарностью.