powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
25 сообщений из 40, страница 1 из 2
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33514195
Grigoriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем впервые поставлена была передо мной задача - вывести данные по продажам за каждый день.
До этого я работал с Ms Sql 2000, всё более менее понимал, синтаксис, да и утилиты удобные - профайлер, аналайзер, да менеджер.
Пришел к выводу, что если выводить данные по продажам товара номер ХХХ за три месяца - это 90 колонок (или полей для субд). Довольно много, получается убого. Решил, что как раз для такого и создан ОЛАП. Полез смотреть...
Мда... Вобщем аналога профайле вообще не нашел, MDX-Sample слабо тянет на аналог аналайзера, да и AM на EM похож как сто третья ксерокопия червонца.
Но это ладно. Дело в следующем.
У меня етсь несколько таблиц, одна для фактов, 2 для измерений.
таблица фактов имеет следующие поля:
Код: plaintext
1.
2.
3.
4.
5.
6.
    [agentcode] [char] ( 6 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
    [nnum] [char] ( 13 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
    [kol] [numeric]( 19 ,  4 ) NOT NULL ,
    [date] [datetime] NOT NULL ,
    [partia] [char] ( 5 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
    [id] [int] IDENTITY ( 1 ,  1 ) NOT NULL 
Измерения у "куба" два с половиной -
1. Дата (мне надо год, неделя года, день недели(словами типа пн., вт.))
2. Номенклатурный номер карточки (группа-номер-партия)
по третьему измерению у меня непонятка- мне просто надо отсортировать по убыванию продажи за день.

Теперь мои вопросы: как правильно задать измерения для куба? Т.е. в мастере я задал, но вот ведь проблема: в группе несколько номеров.
Предположим есть группа "Анальгин", в ней "Анальгин 0,1", "Анальгин 0,2".
Если я хочу посмотреть данные по карточке "Анальгин 0,1" за неделю, то у меня 7 колонок, в них продажи. Первая, вторая, третья и т.д. -
А когда по группе? Он же просуммирует первые продажи, вторые продажи? А мне надо несуммировать, а показать, просто их будет больше.
Как реализовать это половинчатое измерения типа "порядковый номер"?
А еще мне надо видеть не только данные по каждой продаже, но и сумму за день и сумму за неделю.
Вверху таблицы, как на рисунке. Как вытянуть такое?
Я очень слаб в МДХ, я построил по всем данным новую таблицу (это доп. расход времени)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
	[rank] [int] NULL ,
	[nnum] [char] ( 13 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[kol] [numeric]( 19 ,  4 ) NOT NULL ,
	[id] [int] NOT NULL ,
	[date] [datetime] NOT NULL ,
	[agentcode] [char] ( 6 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[partia] [char] ( 5 ) COLLATE Cyrillic_General_CI_AS NOT NULL 
И вот на ней построил куб. Вот запрос из куба:
Код: plaintext
1.
2.
3.
4.
select Order(BottomCount([date_dim].Day.Members,  60 ),  "", BDesc) 	On COLUMNS, 
NON EMPTY Order ([rank_dim].[Rank].AllMembers,[rank_dim], Desc) 	On ROWS
from REDBUT_CUBE
Where [gnum_nnum].[gnum_nnum_hier].[All gnum_nnum].[        130501 ]
Я так и не понял как работает сортировка, для чего иногда ставятся, а иногда нет фигурные скобки, но работает.
RANK - это порядковый номер, я его ввел, чтобы иметь какое-то подобие третьего измерения.
Буду очень рад советам, т.к. пока слабо понимаю как все это делается?
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33514275
Олег Щербина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отображать данные можно только в Delphi?
Сводные таблицы Excel не подходят?
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33515009
Grigoriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не подходят, я Эксельный Pivot проверял, он мне не подходит.
Он рисует сумму сбоку, а мне надо сверху. Кроме того, он раскрывает только одну ветку дерева измерения. а мне надо все - как на рисунке.
Но главное вы мне подскажите - порядковый номер как измерение - как сделать?
Я понимаю, что сортировкой, но если 10 одинаковых значений - как он их расставит?
Мне надо по щелчку на ячейке получить дополнительные поля фактов, как то: agentcode, partia
А Эксель вынесет все три факта в таблицу.
Вобщем главная моя проблема на данном этапе -
порядковый номер
данные по суммам за день и неделю
отображение недели года и дня недели
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33518112
Grigoriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
совсем глухо, да?
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33519019
Grigoriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, подскажите хоть ресурс по МДХ, с примерами. БОЛ не помошник в этом
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33519177
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyНарод, подскажите хоть ресурс по МДХ, с примерами. БОЛ не помошник в этом

this
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33519325
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(Похоже, что в сторону MDX еще рано смотреть)
Ищите книгу А.Федоров Н.Елманова "Введение в OLAP-технологии Microsoft"
На olap.ru было несколько глав из этой книги (и немного примеров на Delphi).
Пока в сути не разберетесь в MDX лезть бесполезно!
А через язык запросов изучать технологию - с OLAPом такое не пройдет.
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33519708
Grigoriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда... за книгу спасибо. Но мне надо щас и срочно :)
Я решил сделать три запроса и заполнить сначала шапку, потом подшапку, а потом и таблицу.
Но вот как бы увидеть красиво названия колонок?
Вот мой запрос
Код: plaintext
1.
2.
select [Week].Members On COLUMNS
from REDBUT_CUBE
Where  ([        130501 ], [Kol])
Вот названия колонок, которые я вижу в результате:
Код: plaintext
[date_dim].[All date_dim].[2005].[Week 3]
Вот как показывает MDX Sample:
Код: plaintext
Week 3
А вот как я хочу видеть:
Код: plaintext
3.2005
Как?
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33520523
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyЧитаю я вас с 31-го января, но ничего не понимаю.... может по-русски заговорите? Правильно сформулированный фопрос - половина ответа!
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33520813
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dmitry Biryukov
"По-русски" он не сможет...
Гворят "Не зная броду не лезь в воду" - однако здесь случай тяжелее, тут проблема незнания что такое вода!

2 Grigoriy
у-у-у!!!!
какое измерение создал, таких членов оно тебе и выдает...
типа на пальцах объяснить? ну пожалуйста:
С какого перепугу в экселе если набрать Январь 2006 и нажать ввод, ячейка примет вид янв.2006, а содержать будет 01.01.2006? Что нужно делать - менять формат.
Так и у тебя - прошелся мастером создания измерения типа "дата" - мастер, как его учили, так и отработал. А уж красиво тебе или некрасиво - мастеру, извините, плевать...
Короче - либо создавай измерения самостоятельно, либо меняй формат в Member Name Column.
Ну и резюме - читай матчасть (ссылку давал).

А вообще, совет мой тебе на будущее (от чистого сердца), если перед тобой стоит задача, причем выполнить ее надо в короткие сроки, выполняй ее с помощью тех средств с которыми умеешь и знаешь как работать.
И совет из форума по Дельфи тебе дали действительно хорошой - смотри лучше в сторону HierCube....

Удачи!
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33520963
Grigoriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На многих форумах я зарегистрирован и не сказать, что такой уж чайник, могу и совет дать и умное спросить. И на каждом форуме есть предвзятое отношение к новичкам, спрашивающим "почему у меня Access Violation на P^:=@Z выдает?"... Но везде по разному, где-то это легкое прикалывание, где-то просто нереальные снобы, от которых воротит. Я от этого уже отвык, хотя чайникам, за исключением крайних случаев типа "почему кнопки и хелп не на русском" и "а как программировать игрушку" всегда отвечаю. Вы мне вернули это незабываемое ощущение молодости, высокомерно-снисходительными ответами.
кулхацкер1"Читаю я вас с 31-го января, но ничего не понимаю.... может по-русски заговорите? Правильно сформулированный фопрос - половина ответа!"

кулхацкер2
" здесь случай тяжелее, тут проблема незнания что такое вода!"

Спасибо.
а теперь попытаюсь сформулировать "фопрос" , чтобы облегчить отвечающему задачу.
Я и правда многого не понимаю, я например не понимаю как использовать функции в запросе. Потом, в примере где-то, я увидел, что оказывается сначала
Код: plaintext
1.
2.
3.
WITH 
   MEMBER [Measures].[Store Size] AS
   'Val(Store.CurrentMember.Properties("Store Sqft"))'
и только потом
Код: plaintext
1.
2.
3.
SELECT
   {[Measures].[Unit Sales], [Measures].[Store Size]} ON COLUMNS,
   {[Store].[Store Name].Members} ON ROWS
From Sales
В SQL такого нет, там проще с этим. Да и БОЛ по дурацки реализован - искать по анализис части трудно, в поиске все равно учавствуют пусть и серенькие члены SQL-справки.
Я ведь не спрашиваю ПОЧЕМУ не так как я хочу. Я спрашиваю КАК HierCube это круто, но ИМХО я решу свои проблемы, если правильно составлю MDX-запрос.
Я решил сделать 3 запроса - сумма за неделю, сумма за день и каждая операция за день и просто разместить их в таблице.
Т.к. дни идут неподряд, были дни когда торговли не было и соответственно число дней не равно числу недель*7, то хочется в запросе по дням узнать неделю этого дня. Т.е. день №27, а какая неделя? вариант [Day].Parent выдает ошибку, явно что-то не то делаю...
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33521062
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyПредположим есть группа "Анальгин", в ней "Анальгин 0,1", "Анальгин 0,2".
Если я хочу посмотреть данные по карточке "Анальгин 0,1" за неделю, то у меня 7 колонок, в них продажи. Первая, вторая, третья и т.д. -
А когда по группе? Он же просуммирует первые продажи, вторые продажи? А мне надо несуммировать, а показать, просто их будет больше.

А как тут может быть что то отличное от суммы?

GrigoriyТ.к. дни идут неподряд, были дни когда торговли не было и соответственно число дней не равно числу недель*7,
то хочется в запросе по дням узнать неделю этого дня. Т.е. день №27, а какая неделя? вариант [Day].Parent выдает ошибку, явно что-то не то делаю...

Вы строите измерение времени на таблице фактов (quick and durty) или на отдельной таблице (rules)?

Совет, определитесь сначала с дизайном куба и измерений. После этого запросы будут не просто простыми, а очень простыми.

И зачем вам второй куб, я так и не понял.
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33522204
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O-o-o!!! (закатывая глаза кверху)
Ну неужели действительно непонятно, что твой "фопрос", которого на самом деле-то и нет, хотя ты и попытался его сформулировать, сродни: Grigoriy
"почему кнопки и хелп не на русском" и "а как программировать игрушку" А уж чего стоит: Grigoriy
Я так и не понял как работает сортировка, для чего иногда ставятся, а иногда нет фигурные скобки, но работает.
И как в этом случае давать советы и оказывать помощь.
А причина в том, что ты:
GrigoriyПолез смотреть... а не изучать, т.к. времени у тебя на изучение нет.
Еще доходчивый пример из твоей серии? Диалог у врача:
-Доктор, у меня болит!
-Где болит?
-Ну Вы же доктор, вот Вы и скажите где у меня болит и как лечить!

Так же и у нас с тобой получается...
На каждый твой вопрос надо сначала задать с десяток уточняющих вопросов.
Давай, по твоему 1 посту пройдемся...
Grigoriyкак правильно задать измерения для куба?... Ты его уже задал, для куба-то!...
Читаем дальше..., а..., да не для куба вероятно, а в запросе... Ну тут все просто.
Да, действительно, если взять группу, то все продажи просуммируются по группе,
а тебе надо, чтоб по элементам группы или как? если по элементам группы, то:
Код: plaintext
DESCENDANTS([gnum_nnum].[Анальгин], [gnum_nnum].[как там у тебя называется уровень с номерами])
Упс, а это чего [gnum_nnum_hier] - у тебя измерение с несколькими иерархиями? а зачем они тебе, если конечно не секрет?
Дальше:
GrigoriyКак реализовать это половинчатое измерения типа "порядковый номер"? Никак, оно тебе не нужно - просто отсортируй элементы, которые мы вытянули
Код: plaintext
1.
2.
3.
ORDER(
  DESCENDANTS([gnum_nnum].[Анальгин], [gnum_nnum].[как там у тебя называется уровень с номерами]), 
  (Measures.[как там у тебя называется мера], [date_dim].[укажи элемент по которому будет сортироваться]), 
DESC)
GrigoriyА еще мне надо видеть не только данные по каждой продаже, но и сумму за день и сумму за неделю. здесь предлагаю реализовать просто 3 запроса к базе,
все-равно ты результаты в Delphi на StringGrid бросать будешь, так что с MDX типа "все в одном" лучше не мучайся.

Вот тока такие ответы, наверное, мало кого устроят.
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33522512
Grigoriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfire
Вы строите измерение времени на таблице фактов (quick and durty) или на отдельной таблице (rules)?

И зачем вам второй куб, я так и не понял.
Ранmit хотел на таблице фактов, но теперь пришел к выводу, что надо создать искуственно календарь и на его основе замутить измерение.
Возможно это поможет тем, что мне не придется мучатся с красивым отображением недель года, это я наверное могу в SQL-сервере задать и потом просто как строку использовать вместо времени.
Второй куб - это я бредил, думал, что придется строить второй куб, уже по неделям, не понимал что это и есть задача куба- выдавать данные по члену иерархии
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33522547
Grigoriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfire GrigoriyПредположим есть группа "Анальгин", в ней "Анальгин 0,1", "Анальгин 0,2".
Если я хочу посмотреть данные по карточке "Анальгин 0,1" за неделю, то у меня 7 колонок, в них продажи. Первая, вторая, третья и т.д. -
А когда по группе? Он же просуммирует первые продажи, вторые продажи? А мне надо несуммировать, а показать, просто их будет больше.

А как тут может быть что то отличное от суммы?


В том то и дело. Мне надо продажи(факт) за день (колонки) по препарату (страницы). Но строки я не выбираю. Т.к. мне нужны просто отсортированные по факту. Как сделать такой запрос я не знаю.
Т.е. предполагаю, что если явно не задам в ON ROWS что-то, то вылезет сумма за день. А вот чтобы не вылезла?
Я пока делаю так - пришиваю к таблице фактов еще поле rank - искуственное. порядковый номер по препарату за день. И на его основе строю продажи. Но может ОЛАП может как-то иначе?
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33522821
Grigoriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgorO-o-o!!! (закатывая глаза кверху)
Ну неужели действительно непонятно, что твой "фопрос", которого на самом деле-то и нет, хотя ты и попытался его сформулировать, сродни: Grigoriy
"почему кнопки и хелп не на русском" и "а как программировать игрушку" А уж чего стоит: Grigoriy
Я так и не понял как работает сортировка, для чего иногда ставятся, а иногда нет фигурные скобки, но работает.
И как в этом случае давать советы и оказывать помощь.


Я ж не отказываюсь. Ну извините, что не написал в теме письма магические фразы чайника "не бейте сильно", "не пинайте ногами" и всё такое :))

ShIgor
Давай, по твоему 1 посту пройдемся...
Grigoriyкак правильно задать измерения для куба?... Ты его уже задал, для куба-то!...
Читаем дальше..., а..., да не для куба вероятно, а в запросе... Ну тут все просто.
Да, действительно, если взять группу, то все продажи просуммируются по группе,
а тебе надо, чтоб по элементам группы или как?

Я задал, но мне кажется это сделано неправильно - Ведь какая у меня иерархия? С датами всё просто - Год-Неделя-День недели (желательно русскими буковками, если нельзя - циферками.)
Но эту иерархию я могу реализовать даже в Sql Server создав искуственную таблицу-календарь, с полями (Дата, Неделя года, день недели-число, день недели-слово) и привязав по дате, использовать остальные поля как члены строковой иерархии.

ShIgor
если по элементам группы, то:
Код: plaintext
DESCENDANTS([gnum_nnum].[Анальгин], [gnum_nnum].[как там у тебя называется уровень с номерами])
Упс, а это чего [gnum_nnum_hier] - у тебя измерение с несколькими иерархиями? а зачем они тебе, если конечно не секрет?


Теперь по группе-номеру.
Каждый препарат имеет свой номенклатурный номер, он уникален. Все продажи, все расчеты ведутся с номенклатурным номером (NNUM).
Например есть следующая группа "Метилурацил 0.5г №10,таб "(GNUM=" 130699"), там есть следующие элементы (NNUM, NAME, PRODUCER)
Код: plaintext
1.
2.
"130702","Метилурацил 0.5г №10,таб","СТИ-Восток,Россия"
"130705","Метилурацил 0.5г №10,таб","Борисовский ЗМП,Белорусc."
Вот продажи все идут по номеру, я rank тоже строил по номеру. А выяснилось потом, что анализ надо вести по группе. Т.е. если в этот день российского продано было 5 раз и белорусского 2 раза, то должно быть 7 строчек, где продажи отсортированы по кол-ву в заказе. Вроде понятно...
Потому и иерархия - завтра опять захотят анализировать по номеру.
Я конечно могу создать 2 rank-измерения, один для группы, сквозной, другой для каждого номера, но это, интуитивно чувствую, неверный путь, наверняка есть вариант просто вывести члены измерения за день.

ShIgorДальше:
GrigoriyКак реализовать это половинчатое измерения типа "порядковый номер"? Никак, оно тебе не нужно - просто отсортируй элементы, которые мы вытянули
Код: plaintext
1.
2.
3.
ORDER(
  DESCENDANTS([gnum_nnum].[Анальгин], [gnum_nnum].[как там у тебя называется уровень с номерами]), 
  (Measures.[как там у тебя называется мера], [date_dim].[укажи элемент по которому будет сортироваться]), 
DESC)

Возможно это то, что мне надо.
Хотя я сделал
Код: plaintext
1.
2.
3.
4.
5.
select  Day.Members On COLUMNS, ORDER(
DESCENDANTS([        130501 ], [Nnum]),   ([Measures].[Kol], [date_dim].[Day])
, DESC) 	On ROWS
from REDBUT_CUBE
Where [        130501 ]
Ругается на анкноун дименшэн ор мембер DAY

ShIgor
GrigoriyА еще мне надо видеть не только данные по каждой продаже, но и сумму за день и сумму за неделю. здесь предлагаю реализовать просто 3 запроса к базе,
все-равно ты результаты в Delphi на StringGrid бросать будешь, так что с MDX типа "все в одном" лучше не мучайся.

Именно так и сделаю - три запроса, по кусочкам закину в Грид и буду доволен. Всё равно HierCube как-то долго осваивать, StringGrid ближе и тупее

ShIgorВот тока такие ответы, наверное, мало кого устроят.
Как раз таки такие и нужны, а книгу я на озоне закажу :)
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33534270
Grigoriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните мне, как работает сортировка?
Вот есть у меня измерение rank, целочисленное, 1,2,3...15, я его использую для строк
в запросе:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Select 
BottomCount([StrDate].Members, 42 ) on COLUMNS,
Non Empty Order([Rank].[Rank].Members,"", desc) On ROWS
From REDBUT_CUBE
Where (
[GNUM].[All GNUM].[        130501 ]
)
то если не указывать ничего, то выстраивает так
1
10
11
12
13
14
15
2
3
4
Хотя это не строки, а числа!
Если же указывать в запросе ORDER, то при DESC сортирует 1,2,3, а при ASC наоборот.
То же самое с датами - сортировка всё портит, если ее отключить - то всё рисует как положено.
Где и что я неправильно пишу? Если конечно это можно объяснить...
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33534646
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тип данных ключа или имени (по чём вы сортируете?) выставите правильно
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33534866
Grigoriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял :(
Я плёхо понимайт по ОЛАПски :))
Order ("Что сортируем", "По какому измерению или мере сортируем", "В какую сторону сортируем")
Верно?
Так почему он сам по себе сортирует вразброс?
Или вы имели ввиду другой ключ, в таблице измерений?
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33535150
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не совсем
Order ("Что сортируем", "По какой мере сортируем", "В какую сторону сортируем")
есть два пути
1. настроить сортировку в измерении, тогда order в запросе не нужен
2. вместо "" написать Val(Rank.CurrentMember.Properties("Key"))
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33536262
Grigoriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно, почему тогда если я указываю вторым членом измерение, он не ругается, а еще он не меняет порядок при смене DESC на ASC.
Ок, тогда по практике - У меня щас в кубе 7 измерений (группа, порядковый номер и 5 штук по дате)- всё потому что я не могу правильно задать измерение по дате.
Мне надо и неделю года и день недели - я создал измерение, в которое запихнул 2 поля из табличного календаря - номер недели года и день недели (пн,вт,ср и т.д.)
Так вот, хочу получить выборку, где в колонках будет
пн, вт, ср, чт, пт, сб, вс, пн, вт, ср, чт, пт, сб, вс и т.д.
Т.е чтобы все шло по порядку, несмотря на то, что не видно номера недели, чтобы он тоже учавствовал.
А если делать ORDER ([StrDate].[WeekDay].AllMembers, [StrDate], Desc), то вообще никакого смысла и порядка я не вижу.
Неужели мне надо заносить в меры значение дня, чтобы иметь возможность сортировать? Неужели порядок колонок нельзя задавать значениями самих колонок?
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33536772
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Назначение функции ORDER - упорядочить элементы в наборе (SET), в зависимости от значения какой-либо ячейки.
Т.О. указав [StrDate], в качестве второго аргумента в функции - сортировка происходит по ячейке ([StrDate].DefaultMember, Measures.DefaultMember), смею предположить (исходя из Вашего дизайна куба и Ваших познаний), что [StrDate].DefaultMember = [StrDate].[All StrDate]. Получается, что вы сортируете элементы по одному и тому же значению. Поэтому же нет и разницы между ASC и DESC.
Для вашей сортировки достаточно упорядочить элементы самого измерения на этапе проектирования. У каждого измерения есть Member Key Column и Member Name Column - по-умолчанию соритровка установлена на Name (см. Properties, Advanced, Order By в Dimension Editor, предварительно выбрав уровень.). Смените просто его на Key, если он в том порядке в котором он Вам нужен.
Либо создайте новый элемент в Member Properties и укажите его в Order By.
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33537210
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgorПравильно, только не DefaultMember, а CurrentMember
DefaultMember будет использоваться тогда, когда это измерение никоим образом в запросе не учавствует, то тогда и CurrentMember = DefaultMember
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33538602
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, правильно, там действительно CurrentMember.
Тогда в этом случае должна быть разница между ASC и DESC.
Другое дело, что сортировка будет произведена в рамках иерархии (для каждой недели своя сортировка), а не сквозная (для сквозной BASC и BDESC).
Но это все-равно не то, что надо Grigoriy, его случай со свойством "Order By".
Правда есть еще один вариант, вернуться к функции ORDER, но вот так:
Код: plaintext
ORDER ([StrDate].[WeekDay].AllMembers, [StrDate].CurrentMember.Name, Desc)
...
Рейтинг: 0 / 0
MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
    #33538608
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс! че-то я не проснулся, ему же не по имени сортировать-то надо...
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS, OLAP, Delphi и другие- вытянуть день недели, неделю года и сумму по ним
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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