1

Я уже давно использую Datazen, борясь с пониманием того, как он работает внутри, особенно с отсутствием документации об этом.Datazen - Табличная модель SSAS - Даты не рассматриваются

В любом случае, у меня есть табличная модель SSAS, которая имеет поле Datetime в таблице, помеченной как Date. Я использую эту табличную модель для создания отчетов в excel, и она отлично работает.

Теперь я хотел бы использовать эту табличную модель в Datazen, и я пытался создать представление данных, который считывает меры и атрибуты в MDX

Проблема заключается в том, когда я отмечаю Дата создания поля как DateTime в панели управления Datazen, она дает мне следующее сообщение: Failed to refresh in Dashboard

Это MDX запрос я использую:

SELECT NON EMPTY { 
    [Measures].[Count of Misuse Bugs], 
    [Measures].[Count of Valid Bugs], 
[Measures].[Count of Bugs], 
[Measures].[Count of Invalid Bugs], 
[Measures].[Time Spent on invalid Bugs], 
[Measures].[Time Spent on Valid Bugs], 
[Measures].[Invalidity Ratio], 
[Measures].[Misuse Ratio] 
} ON COLUMNS, 
NON EMPTY { 
    (
    [Bugs].[BugID].[BugID].ALLMEMBERS * 
    [Bugs].[BugTitle].[BugTitle].ALLMEMBERS * 
    [Bugs].[Client].[Client].ALLMEMBERS * 
    [Bugs].[Current State].[Current State].ALLMEMBERS * 
    [Bugs].[Final Resolution].[Final Resolution].ALLMEMBERS * 
    [Bugs].[Internal Vs. External].[Internal Vs. External].ALLMEMBERS * 
    [Bugs].[Last Reasonable State].[Last Reasonable State].ALLMEMBERS * 
    [Bugs].[Owner].[Owner].ALLMEMBERS * 
    [Bugs].[Owner State].[Owner State].ALLMEMBERS * 
    [Bugs].[Project].[Project].ALLMEMBERS * 
    [Bugs].[Release].[Release].ALLMEMBERS * 
    [Bugs].[Responsibility].[Responsibility].ALLMEMBERS * 
    [Bugs].[TAR].[TAR].ALLMEMBERS * 
    [Creation Dates].[Creation Date].[Creation Date].ALLMEMBERS 
) 
} ON ROWS FROM [Bugs] 

Я использую SQL Server 2012. Любая помощь будет значительно appreci ованные. ADDING FIELD AS DATETIME IN DATAZEN DATA VIEW

ответ

0

Данные не являются наиболее динамичными при понимании того, как отформатированы даты. Попробуйте создать их как yyyy-MM-dd.

Редактировать: Я создаю новый член, который является форматированной датой. Надеюсь, это сработает для вас.

WITH 
MEMBER DatazenDate AS 
cdate(format([Creation Dates].[Creation Date].CURRENTMEMBER.MEMBER_VALUE, "yyyy-MM-dd"))  

SELECT NON EMPTY { 
    DatazenDate   
    [Measures].[Count of Misuse Bugs], 
     [Measures].[Count of Valid Bugs], 
    [Measures].[Count of Bugs], 
    [Measures].[Count of Invalid Bugs], 
    [Measures].[Time Spent on invalid Bugs], 
    [Measures].[Time Spent on Valid Bugs], 
    [Measures].[Invalidity Ratio], 
    [Measures].[Misuse Ratio] 
    } ON COLUMNS, 
    NON EMPTY { 
     (
     [Bugs].[BugID].[BugID].ALLMEMBERS * 
     [Bugs].[BugTitle].[BugTitle].ALLMEMBERS * 
     [Bugs].[Client].[Client].ALLMEMBERS * 
     [Bugs].[Current State].[Current State].ALLMEMBERS * 
     [Bugs].[Final Resolution].[Final Resolution].ALLMEMBERS * 
     [Bugs].[Internal Vs. External].[Internal Vs. External].ALLMEMBERS * 
     [Bugs].[Last Reasonable State].[Last Reasonable State].ALLMEMBERS * 
     [Bugs].[Owner].[Owner].ALLMEMBERS * 
     [Bugs].[Owner State].[Owner State].ALLMEMBERS * 
     [Bugs].[Project].[Project].ALLMEMBERS * 
     [Bugs].[Release].[Release].ALLMEMBERS * 
     [Bugs].[Responsibility].[Responsibility].ALLMEMBERS * 
     [Bugs].[TAR].[TAR].ALLMEMBERS * 
     [Creation Dates].[Creation Date].[Creation Date].ALLMEMBERS 
    ) 
    } ON ROWS FROM [Bugs] 
+0

Как мы можем это сделать точно? используя cdate? Не могли бы вы показать мне в вышеупомянутом запросе MDX, как это можно сделать? – mazazino

+0

Отредактировал свой ответ новым членом, который является форматированной датой. –

+0

Большое спасибо, он действительно работал. Но теперь проблема в производительности. с каждым членом, который я добавляю или измеряю, член cdate замедляет производительность запроса по экспоненте. Есть ли другая альтернатива? – mazazino

0

У меня была такая же проблема,

Я использовал следующие способы,

WITH 
MEMBER SalesDateAsDateTime as 
Iif([Measures].[WorkOrderCount]=0, null, [Sales Date].[Calendar Date].CurrentMember.MEMBER_VALUE) 

WITH 
MEMBER SalesDateAsDateTime AS 
cdate(format([Sales Date].[Calendar Date].CURRENTMEMBER.MEMBER_VALUE, "yyyy-MM-dd")) 

WITH MEMBER [Measures].[SalesDateAsDateTime] AS 

([Sales Date].[Calendar Date].CurrentMember.MEMBERVALUE) 

Но, все это занимает больше времени, чтобы получить результаты, наконец, я добавил дату измерения в кубе непосредственно для этого MAXIMUM

Это довольно быстро

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