Так что я унаследованную база данных со структурой таблицы, как это (упрощенной)индексированного View ищу нулевые ссылки без INNER объединения или подзапрос
Create Table Transaction
{
TransactionId INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
ReplacesTransactionId INT
..
..
}
Так что я хочу, чтобы создать индексированный вид таким образом, что следующий пример будет возвращать только вторая роль (так как он заменяет первый)
Insert Into Transaction (TransactionId, ReplacesTransactionId, ..) Values (1,0 ..)
Insert Into Transaction (TransactionId, ReplacesTransactionId, ..) Values (2,1 ..)
Есть несколько способов создания этого запроса, но я хотел бы создать индексированное представление, которое означает, что я не могу использовать подзапросы, левый соединяющий или Excepts. Пример запроса (с использованием LEFT JOIN) может быть.
SELECT trans1.* FROM Transaction trans1
LEFT JOIN Transaction trans2 on trans1.TransactionId = trans2.ReplacesTransactionId
Where trans2.TransacationId IS NULL
Очевидно, что я застрял со структурой базы данных и хочу улучшить производительность приложения, используя данные.
Любые предложения?
Если у вас возникла проблема с разумным запросом, падающим фолом в правилах с индексированным представлением, вполне вероятно, что любая переписывание запроса будет падать с тем же правилом или другим одинаково плохим. Я не вижу исправления запроса, который вы указали. –