2010-07-07 2 views
1

Должен сначала признать, что я новичок в 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

ответ

1

Как эти данные загружаются в реальной размерности претензии (или независимо от того, что это имя может быть)? Причина, по которой я спрашиваю, эта задача может быть лучше решена путем добавления этого правила во время процесса загрузки, а не для записи расчетного члена MDX.

Поскольку вам нужно будет вернуться к данным, чтобы определить, имеет ли устройство предыдущее требование с fimaxActionCode, которое может стать неприятным с MDX, вы можете легко отделить их во время загрузки и соответствующим образом разбить их (т.е. если он имел предыдущее требование ИЛИ не имел предыдущего требования и попадает в один из перечисленных кодов: 8, 10, 11, 13, 19, 23, 24, 26, 27, 28, 29, 30, 33 , 34, 36, 37). По существу, вы создавали бы медленно меняющийся размер какого-то рода, так как я, вероятно, предполагаю, что эти претензии также имеют какие-то отношения времени, когда это утверждение произошло, если оно произошло, и т. Д. И т. Д.

Решая проблему через Кстати, я предложил вам использовать один и тот же размер и просто добавить дополнительные поля, которые будут обозначать, был ли элемент претензией или нет, и если он не попадает в «новый» критерий возврата, вы просто оставите запись в одиночку.

Имеют смысл?

+0

Что вы подразумеваете под «процессом загрузки»? Обработка куба или процесс вставки новых строк в реляционную базу данных? Импорт базы данных - это служба Windows, которая работает каждую ночь, и можно расширить ее с помощью этой функции. Кроме того, есть хранимая процедура, которая выполняется каждое утро до того, как куб будет перестроен. Это было бы неплохое место, не так ли? Btw, старое измерение не должно быть изменено и должно сосуществовать. Спасибо в любом случае. –

+0

@Tim: Я бы сказал, что хранимая процедура будет самым легким местом для внесения этих изменений, а не для изменения службы Windows. Поскольку вы не можете изменить текущее измерение (не знаете почему), вы должны добавить новый ключ в свою таблицу FACT, чтобы указать на новый размер, заполненный с учетом новых правил, указанных в вашем сообщении. – ajdams

+0

Старое значение Returns-Dimension должно все еще существовать, чтобы иметь возможность сравнить новое правило возврата со старым. Я попробую использовать хранимую процедуру. Но это означает, что каждое утро нужно обновлять всю таблицу (> 10Mio Claims) ?! Спасибо за подсказку с новым ключом в моей таблице фактов, потому что я застрял в основном в ssas иногда;) –

Смежные вопросы