2013-08-21 3 views
1

Как создать динамически рассчитанное поле для определения возраста в днях на основе даты/времени?Возможно ли создать динамически вычисленное поле?

Например, у меня есть поле с меткой даты. То, что я хочу видеть при просмотре куба, - это столбец с указанием количества дней с момента штампа. Поэтому, если отметка времени даты «8/21/13 12:00 PM», и я просматриваю куб на «8/22/13 12:00 PM», расчетная колонка «Количество дней с» будет показывать 1.

Возможно ли это с помощью SSAS?

ответ

1

Да, вы можете:

with member Measures.[date string] as 
      Left(Right([Date].[Date].CurrentMember.UniqueName, 9), 8) 
    member Measures.[date formatted] as 
      Left(Measures.[date string], 4) + "-" + 
      Mid(Measures.[date string], 5, 2) + "-" + 
      Right(Measures.[date string], 2) 
    member Measures.[date date] as 
      CDate(Measures.[date formatted]) 
    member Measures.[to today] as 
      now() - Measures.[date date] 
      , format_string = 'yy" years, "m" months, "d" days"' 

select { 
      Measures.[date string], 
      Measures.[date formatted], 
      Measures.[date date], 
      Measures.[to today] 
     } 
     on columns, 
     [Date].[Date].[Date].Members 
     on rows 
    from [Adventure Works] 

дает то, что вы хотите. Конечно, вам не нужны все промежуточные меры, они просто показывают шаг за шагом, что подсчитывается.

Одно замечание, однако: я отформатировал меру to today с форматом даты, используя yy. Четырехзначный год будет отображаться как «1912 лет» и т. Д., Поскольку SSAS внутренне использует кодировку даты, например Excel, число дней с 1 января 1900 года. Я неправильно использовал форматирование даты здесь, чтобы отформатировать продолжительность, которая является номер, а не реальная дата. Этот метод форматирования дает только правильные результаты для положительных сроков менее 100 лет. Но это только вопрос форматирования, и, тем не менее, правильный расчет продолжительности. Он просто показывает продолжительность в днях и время в течение дня как фракции.

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