|
|
|
Сравнение текущего периода с прошлым
|
|||
|---|---|---|---|
|
#18+
Есть табличная модель данных. Допустим что сегодня: 25.04.2020 Таблица фактов FactOrder, где сидит ID товара, дата продажи и кол-во проданных штук IDDateOrderOrderIDCnt125.04.202015225.04.202016324.04.202011423.04.202018523.04.2020112619.04.202016718.04.202014818.04.202022925.04.20191651025.04.20191851116.05.2019340 Есть таблица измерений DimDate IDDate125.04.2019226.04.2019316.05.2019418.04.2020519.04.2020623.04.2020724.04.2020825.04.2020 Как получить таблицу вида в Эксель: OrderIDSoldTodaySoldYersterDaySoldWeekAgoSoldYearAgo111141502002030000 Идея была такая: 1. добавить в таблицу DimDate вычисляемые столбцы YersterDay, WeekAgo,YearAgo 2. добавить 3 раза таблицу DimDate переименовать их в DimYersterDay, DimWeekAgo, DimYearAgo 3. сделать relationships с основной DimDate , по полям YersterDay, WeekAgo,YearAgo соответственно с полем Date из каждой созданной таблицы 4. потом это поле Date в каждой новой таблице снова связать с FactOrder по полю DateOrder. Я так сделал и нажал Analyze in Excel, там поставил фильтр на основной таблице DimDate на поле Date ='25.04.2020', и добавил в "Столбцы", поле date из каждой таблицы DimYersterDay, DimWeekAgo, DimYearAgo, но что-то не получилось, выдает результат только за 25.04.2020. Как еще делают ? Я просто только начал изучение кубов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2020, 17:40 |
|
||
|
Сравнение текущего периода с прошлым
|
|||
|---|---|---|---|
|
#18+
minya13_85, не точно без добавления 2 таблицы date Не имел дел с табуляркой в MDM есть стандартные MDX функции вот ссылки на Руссо https://www.sqlbi.com/blog/marco/2017/01/24/year-over-year-comparison-using-the-same-number-of-days-in-dax/ https://www.sqlbi.com//articles/compare-equivalent-periods-in-dax/ вот интересная статья - но для 2019 CTP 2.3 https://blog.crossjoin.co.uk/2019/03/01/ssas-tabular-2019-calculation-groups-and-migration-from-ssas-multidimensional/ https://docs.microsoft.com/en-us/archive/blogs/analysisservices/whats-new-for-sql-server-2019-analysis-services-ctp-2-3 Мне сдается это стандартные запросы и они наверняка должны быть в примерах AdventureWorks (или как их там для табулярки ) зы собственно это есть 2 из 3 автора книги Руссо , Chris Webb - 3-го запамятовал можно поискать ихнюю книжку на просторах инета и ру.ра (вряд ли там будет последняя версия книжки но точно была для 2012 ) там много чего есть - ну либо же поиском по их блогам ps Upd 3-й - Феррари - известная такая фамилия, :) но как то я меньше поиском находил его в блогах https://www.amazon.com/Microsoft-Server-2012-Analysis-Services-ebook/dp/B00JDMPHY0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2020, 18:05 |
|
||
|
Сравнение текущего периода с прошлым
|
|||
|---|---|---|---|
|
#18+
Гулин Федор, Я должен создать меры? или куда записать формулы на dax? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2020, 19:01 |
|
||
|
Сравнение текущего периода с прошлым
|
|||
|---|---|---|---|
|
#18+
minya13_85, в Visual Studio в самой таблице (или если есть отдельная для хранения мер) или в CG выделенной под TimeIntelligence создаётся колонна и под неё все элементы (вчера, прош.мес., прошл.год и т.д.) с формулами пишутся хотя в CG не всё гладко пока с форматированием и др. оврагов с производными хватает, напр. с selectedmeasure всё просто а вот с selectedvalue придётся пошаманить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2020, 20:00 |
|
||
|
Сравнение текущего периода с прошлым
|
|||
|---|---|---|---|
|
#18+
minya13_85, Я так делал сравнения с аналогичным периодом прошлого года АППГ. Надеюсь поможет. CREATE MEMBER CURRENTCUBE.[Tip Oper].[Tip].[All].[Факт за аппг] AS (PARALLELPERIOD( [DIM TIME].[Year-Month-Day].[YEAR], 1,[DIM TIME].[Year-Month-Day].currentmember),[Tip Oper].[Tip].&[Факт]), VISIBLE = 1; CREATE MEMBER CURRENTCUBE.[Tip Oper].[Tip].[All].[Отклонения между фактом и фактом за аппг] AS case when [Measures].CURRENTMEMBER = [Measures].[Экономическая добавленная стоимость, тыс.руб.] then IIF() when [Measures].CURRENTMEMBER=[Measures].[Рентабельность инвестированного капитала (ROIC), %] then IIF() else [Tip Oper].[Tip].&[Факт]-[Tip Oper].[Tip].[All].[Факт за аппг] end, VISIBLE = 1; CREATE MEMBER CURRENTCUBE.[Tip Oper].[Tip].[All].[Отклонения между фактом и фактом за аппг,%] AS case when ([Tip Oper].[Tip].[All].[Факт за аппг])=0 then null when [Measures].CURRENTMEMBER = [Measures].[Рентабельность инвестированного капитала (ROIC), %] then (format([Tip Oper].[Tip].&[Факт]*100,"Currency")-format([Tip Oper].[Tip].[Факт за аппг]*100,"Currency"))/abs(format([Tip Oper].[Tip].[Факт за аппг]*100,"Currency")) else (([Tip Oper].[Tip].&[Факт]-[Tip Oper].[Tip].[All].[Факт за аппг])/abs([Tip Oper].[Tip].[All].[Факт за аппг])) end, FORMAT_STRING = "Percent", VISIBLE = 1; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2020, 15:52 |
|
||
|
|

start [/forum/topic.php?fid=49&fpage=8&tid=1857320]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 149ms |

| 0 / 0 |
