Я пытаюсь написать хранимую процедуру для Crystal Reports, объединив несколько запросов в один набор результатов (Crystal не поддерживает несколько результатов в одном отчете).
Набор результатов, который я пытаюсь получить, объединяет столбцы из обеих таблиц.
В SP я объявляю @temptable и столбцы (потому что две запрашиваемые таблицы имеют разные столбцы).
DECLARE @TEMPNEWBILLING TABLE
(
ACCOUNT DECIMAL null,
CLIENT NVARCHAR null,
TIMESTAMP INT null,
BILLING DECIMAL null,
CALLKIND INT null,
HITK1 DECIMAL null,
HITK2 DECIMAL null,
HIDISC DECIMAL null,
HITALK DECIMAL null,
HIPTCH DECIMAL null,
HICONF DECIMAL null,
HIHOLD DECIMAL null,
PTCH DECIMAL null,
SUPERTIME DECIMAL null
)
Я тогда SELECT
из обеих таблиц INTO
временная таблица:
SELECT Account, Client, Timestamp, Billing, CallKind, HiTk1, HiTk2, HiDisc, HiTalk, HiPtch, HiConf, HiHold, Ptch
INTO TEMPNEWBILLING
FROM
mCallEnd
WHERE billing = cast(@BILLINGNUMBER as decimal)
AND Timestamp > @STARTITIME
AND Timestamp < @ENDITIME
AND CallKind in (0,1,2,3,4,16)
SELECT
Billing, SuperTime
INTO TEMPNEWBILLING
FROM
mClientMaint
WHERE billing = cast(@BILLINGNUMBER as decimal)
AND Timestamp > @STARTITIME
AND Timestamp < @ENDITIME
И, наконец, я просто получаю все данные из временной таблицы.
SELECT * FROM @TEMPNEWBILLING
К сожалению, что-то идет не так, как при запуске SP, я получаю ошибку,
В базе данных уже есть объект с именем 'TEMPNEWBILLING'.
Я проверил это, и кажется, что первый запрос выполняется, но ошибка появляется во втором Select Into. Я должен делать это неправильно, так как я получаю ту же ошибку, если я использую # таблицы или @ таблицы (то есть delcare таблица против создания таблицы).
Не является ли перспектива заполнения временной таблицы результатами двух запросов просто невозможной? Я использую не тот инструмент для работы?