Как выполнить многократный SQL в скрипте QlikView?
У меня есть запрос MS-SQL с использованием временной таблицы, из которой я хотел бы получить данные в QlikView:
declare @oi_im table (tick datetime);
insert into @oi_im
SELECT TOP 360 dateadd(mi, datediff(mi, 0, GETDATE()) - ROW_NUMBER() OVER (ORDER BY ID), 0) as tick
FROM [Messages] timer;
SELECT tick as Created, case when msgs is NULL then 0 else msgs end as msgs
FROM (SELECT TOP 360 tick
FROM @oi_im) timer
LEFT JOIN (SELECT TOP 360 dateadd(mi, datediff(mi, 0, Created), 0) as Created, count(*) as msgs
FROM [Messages] with(nolock)
GROUP BY dateadd(mi, datediff(mi, 0, Created), 0)
ORDER BY Created desc) msgslist ON msgslist.Created=timer.tick
ORDER BY timer.tick desc
Моя первая попытка состояла в том, чтобы просто скопировать этот текст в окно "Редактировать скрипт" QlickWiev, но проблема в том, что скрипт бросает операторы в SQL один за другим. После выполнения первого утверждения (создания временной таблицы) сервер MS SQL теряет контекст, а при втором утверждении выдает ошибку "Я не знаю ни одного @oi_im"
Следующая попытка - обернуть этот текст в хранимую процедуру:
SQL execute sp_executesql N'declare @oi_im table (tick datetime);
insert into @oi_im
SELECT TOP 360 dateadd(mi, datediff(mi, 0, GETDATE()) - ROW_NUMBER() OVER (ORDER BY ID), 0) as tick
FROM [Messages] timer with(nolock);
SELECT tick as Created, case when msgs is NULL then 0 else msgs end as msgs
FROM (SELECT TOP 360 tick
FROM @oi_im) timer
LEFT JOIN (SELECT TOP 360 dateadd(mi, datediff(mi, 0, Created), 0) as Created, count(*) as msgs
FROM [Messages] with(nolock)
GROUP BY dateadd(mi, datediff(mi, 0, Created), 0)
ORDER BY Created desc) msgslist ON msgslist.Created=timer.tick
ORDER BY timer.tick desc
'
Он не выдает ошибок, но, к сожалению, не возвращает никаких данных.
Таким образом, вопрос заключается в следующем: как выполнить несколько операторов SQL в скрипте QlikView, в то время как первый оператор SQL не является оператором SELECT?