powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Как сравнить (в MS AS 2k5)
10 сообщений из 10, страница 1 из 1
Как сравнить (в MS AS 2k5)
    #32952252
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Как правильно написать такое сравнение?
Код: plaintext
1.
2.
3.
4.
5.
6.
		iif(
			[TradeTime].[YQMD].CurrentMember is
			[TradeTime].[YQMD].CurrentMember.Parent.FirstChild,
			.... ,
			....
		)
То есть я хочу узнать, является ли CurrentMember первым на текущем уровне или нет. Если первый, то результат будет одним, если нет - другим.

Спасибо.
...
Рейтинг: 0 / 0
Как сравнить (в MS AS 2k5)
    #32952344
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CurrentMember.Parent.FirstChild эквивалентно CurrentMember.FirstSibling

это верно даже в AS2K
...
Рейтинг: 0 / 0
Как сравнить (в MS AS 2k5)
    #32952351
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
В таком случае, как будет выглядеть сравнение? это "is", "=" или что-то еще?
...
Рейтинг: 0 / 0
Как сравнить (в MS AS 2k5)
    #32952384
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CurrentMember.Parent.FirstChild эквивалентно CurrentMember.FirstSibling
Это эквивалентно практически всегда, но не всегда. В частности может быть разница когда есть ragged hierarchy (или даже unbalanced).

То есть я хочу узнать, является ли CurrentMember первым на текущем уровне или нет
Ваша формула проверяет является ли он первым "братом". Если нужен первый на уровне, то

Код: plaintext
[TradeTime].[YQMD].CurrentMember IS [TradeTime].[YQMD].CurrentMember.Level.MEMBERS( 0 )

В таком случае, как будет выглядеть сравнение? это "is", "=" или что-то еще?
Смотри: http://sqljunkies.com/WebLog/mosha/archive/2004/11/04/4959.aspx

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Как сравнить (в MS AS 2k5)
    #32952403
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭто эквивалентно практически всегда, но не всегда. В частности может быть разница когда есть ragged hierarchy (или даже unbalanced).

Кому как не Вам сходу найти самый scary use case

автор.CurrentMember IS .CurrentMember.Level.MEMBERS(0)

А за это спасибо.
...
Рейтинг: 0 / 0
Как сравнить (в MS AS 2k5)
    #32952713
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то я запутался. помогите распутаться :-)
BOL : FirstChildIf the Time dimension includes the levels Year, Quarter, Month, Week, and Day, the following code returns January:

[1995].FirstChild а почему January, а не Q1 ?

Далее MoshaЕсли нужен первый на уровне, то

Код: plaintext
[TradeTime].[YQMD].CurrentMember IS [TradeTime].[YQMD].CurrentMember.Level.MEMBERS( 0 )

это выражение, возвращает первого на уровне, но совсем не FirstSibiling и/или Parent.FirstChild
например для [2005].[Q3].[Aug]
выражение [TradeTime].[YQMD].CurrentMember.Level.MEMBERS(0) вернёт январь совсем другого года и совсем другого квартала
В то время как [TradeTime].[YQMD].CurrentMember.Parent.FirstChild и [TradeTime].[YQMD].CurrentMember.FirstSibiling возвратят [2005].[Q3].[Jul]

MoshaЭто эквивалентно практически всегда, но не всегда. В частности может быть разница когда есть ragged hierarchy (или даже unbalanced).
опять же, если верить BOL'у FirstSibling Returns the first child of the parent of a member. Или опять в BOL'e ошибка или всё-таки это эквивалентно всегда
...
Рейтинг: 0 / 0
Как сравнить (в MS AS 2k5)
    #32952742
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aaron: То есть я хочу узнать, является ли CurrentMember первым на текущем уровне или нет
Mosha: Если нужен первый на уровне, то...
Dmitry: это выражение, возвращает первого на уровне, но совсем не FirstSibiling и/или Parent.FirstChild

> Или опять в BOL'e ошибка или всё-таки это эквивалентно всегда
BOL несколько упрощает ситуацию, т.е. BOL прав практически всегда, но не совсем всегда.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Как сравнить (в MS AS 2k5)
    #32953865
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за советы.

Немного оффтоп, но в продолжение

Рассматривая навигацию
Код: plaintext
1.
2.
3.
[TradeTime].[YQMD].CurrentMember
[TradeTime].[YQMD].CurrentMember.FirstSibling
[TradeTime].[YQMD].CurrentMember.Level.MEMBERS( 0 )
обратил внимание, что на уровне Month мебмеры отсортированы по алфавиту (Feb, Jan, March). Насколько я понял, порядок сортировки задается в дизайнере измерения Attribute --> Properties --> OrderBy .
Для атрибута Месяц устанавливаю Key , предполагая, что сортировка будет по логическому ПК измерения.
Однако, в dimension browser по-прежему вижу список месяцев, отсортированных по алфавиту.
Измерение построено так, что возрастание даты соотвествует возрастанию логического ПК.
...
Рейтинг: 0 / 0
Как сравнить (в MS AS 2k5)
    #32954454
На каждом уровне KEY выбираем сами - из какого поля брать(ну кроме Р/Сh), и если Name & Key одно и тоже поле, то по барабану по чем сортировать.
...
Рейтинг: 0 / 0
Как сравнить (в MS AS 2k5)
    #32957022
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кому как не Вам сходу найти самый scary use case
Вот менее экстремальный случай: Когда нет уровня All, и Вы на самом верхнем уровне. CurrentMember.Parent.FirstChild вернет NULL, потому что CurrentMember.Parent это NULL, а вот CurrentMember.FirstSibling вернет что надо.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Как сравнить (в MS AS 2k5)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]