Должен сначала признать, что я новичок в Analysis Services, но теперь должен расширить существующий сложный куб с новым измерением. Поэтому даже сложно сказать, где моя проблема, не говоря о том, что у меня даже нет плана, как начать. Хорошо, я постараюсь рассказать, чего я хочу достичь.SSAS: названные запросы
Предоставлено Datasourceview с named calculation «Возвращает». Его выражение:
CASE WHEN fimaxActionCode IN (1, 2, 3, 4, 5, 8, 9, 12, 14, 17, 18, 20, 21, 22, 23, 24, 25, 30, 31, 32, 35) THEN
'yes'
ELSE
'no'
END
fiMaxActionCode является ForeignKey и старое правило для «возвращения» было то, что претензии (основной measuregroup) является Возврат когда его maxActionCode является одним из выше. Новое правило состоит в том, что претензия равна . Возврат, когда его maxActioncode является одним из вышеперечисленных, но без предыдущего требования с fimaxActionCode IN (8, 10, 11, 13, 19, 23, 24, 26, 27, 28 , 29, 30, 33, 34, 36, 37). Предыдущее требование является претензией TOP (1) с тем же номером SSN_Number и с исправлением_компьютера <. Теперь мой вопрос (надеясь, что кто-нибудь понял, что я имею в виду): Как создать это новое измерение? Моя первая мысль была создать новый запрос с именем «PreviousClaim»:
SELECT TOP (1) claim.iddata as ClaimID,PreviousClaim.idData as prevClaimID, PreviousClaim.fimaxActionCode, Claim.Repair_Completion_Date as ClaimRepDate, PreviousClaim.Repair_Completion_Date as PrevClaimRepDate
FROM tabData AS PreviousClaim LEFT OUTER JOIN
tabData AS Claim ON PreviousClaim.idData <> Claim.idData
WHERE (PreviousClaim.fimaxActionCode IN (8, 10, 11, 13, 19, 23, 24, 26, 27, 28, 29, 30, 33, 34, 36, 37)) AND (PreviousClaim.fiClaimStatus IN (1, 4, 254, 255, 6))
AND (PreviousClaim.SSN_Number = Claim.SSN_Number) AND (PreviousClaim.Repair_Completion_Date < Claim.Repair_Completion_Date)
ORDER BY PreviousClaim.Repair_Completion_Date DESC;
Тогда я хотел создать в претензионно-Table-DataSourceView, который проверяет, имеет ли он «неправильную предыдущую претензию» новый Named Calculation. Является ли это способом пойти или я на совершенно неправильном пути?
EDIT: еще один вопрос: как я могу запросить этот именованный запрос? Можно ли задать переменные параметров f.e .:
AND ([email protected])
С уважением, Tim
Что вы подразумеваете под «процессом загрузки»? Обработка куба или процесс вставки новых строк в реляционную базу данных? Импорт базы данных - это служба Windows, которая работает каждую ночь, и можно расширить ее с помощью этой функции. Кроме того, есть хранимая процедура, которая выполняется каждое утро до того, как куб будет перестроен. Это было бы неплохое место, не так ли? Btw, старое измерение не должно быть изменено и должно сосуществовать. Спасибо в любом случае. –
@Tim: Я бы сказал, что хранимая процедура будет самым легким местом для внесения этих изменений, а не для изменения службы Windows. Поскольку вы не можете изменить текущее измерение (не знаете почему), вы должны добавить новый ключ в свою таблицу FACT, чтобы указать на новый размер, заполненный с учетом новых правил, указанных в вашем сообщении. – ajdams
Старое значение Returns-Dimension должно все еще существовать, чтобы иметь возможность сравнить новое правило возврата со старым. Я попробую использовать хранимую процедуру. Но это означает, что каждое утро нужно обновлять всю таблицу (> 10Mio Claims) ?! Спасибо за подсказку с новым ключом в моей таблице фактов, потому что я застрял в основном в ssas иногда;) –