1
У меня есть SQL-запрос following с производной таблицей, и из-за этого я не могу создать CLUSTERED INDEX моего индексированного представления. Поэтому мне нужно преобразовать производную таблицу в обычное соединение.SQL Query Transform Производная таблица для обычного соединения (индексированный просмотр)
SELECT
......
FROM
dbo.invoice i
LEFT JOIN
(
SELECT SUM(amount) as servicesamount
,ise.invoiceuid
,ise.episodeuid
,ise.memberuid
,ev.caseuid
FROM dbo.invoice_services ise
JOIN dbo.invoice inv on inv.invoiceuid = ise.invoiceuid
JOIN dbo.event ev ON ev.eventuid = ise.episodeuid -- JOIN IN ORDER TO BRING EVENT INVOCIES ONLY (DENTAL INVOICES COULD EXIST)
GROUP BY ise.invoiceuid,ise.episodeuid,ise.memberuid,ev.caseuid
) ise ON ise.invoiceuid = i.invoiceuid
Любые подсказки о том, как преобразовать
LEFT JOIN
(
SELECT SUM(amount) as servicesamount
,ise.invoiceuid
,ise.episodeuid
,ise.memberuid
,ev.caseuid
FROM dbo.invoice_services ise
JOIN dbo.invoice inv on inv.invoiceuid = ise.invoiceuid
JOIN dbo.event ev ON ev.eventuid = ise.episodeuid -- JOIN IN ORDER TO BRING EVENT INVOCIES ONLY (DENTAL INVOICES COULD EXIST)
GROUP BY ise.invoiceuid,ise.episodeuid,ise.memberuid,ev.caseuid
) ise
к нормальному присоединиться?
Цените это!
Я предполагаю, что вы не просто означает превращение его в 'ВНУТРЕННЕЙ JOIN'. Не знаете ничего об индексированных представлениях - можете ли вы использовать CTE? Но помимо этого - у вас есть реальная проблема с производительностью (это означает, что нужно индексировать представление, а не просто регулярное представление, поддерживаемое индексированными таблицами)? О, вы должны убрать ссылку на 'dbo.invoice' внутри подзапроса. –
Что происходит, так это то, что у меня может быть пример производной таблицы: Left join (select ....) должно быть что-то вроде: left join dbo.invoice_services .... – VAAA
Какая версия SQL Server? А как насчет остальных моих вопросов? –