powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Просто забыл ну с кем не бывает (MS AS)
23 сообщений из 23, страница 1 из 1
Просто забыл ну с кем не бывает (MS AS)
    #32938433
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При создании измерения времени в MS AS Год неделя день, то недели идут в Американском стандарте. Что то надо сделать такое не хитрое что бы он их в нашем стандарте делал. Я уже и в connection string написал Current Language=Russian и Current Location = 1049 и ничего. Как были так и остались.
Недавно в форуме это было, в поиске не нашел, если кто поможет буду присильно благодарен.
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32938553
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а connection string к OLAPу или сиквелу?
надо в data source базы ms as установить Current Language

но в моём случае это тоже не выход, ибо американцы считают 1-2 января (субота-воскресенье) как первая неделя. Для нас же первая неделя - это 3-9 января. Поэтому делаю всё равно view-шку

Мож кто знает как решить мой вопрос?
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32938675
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дак все же о чем вопрос - про то, что считается первой неделей или что неделя начинается с понедельника или воскресенья?
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32938687
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВжикДак все же о чем вопрос - про то, что считается первой неделей или что неделя начинается с понедельника или воскресенья?
У нас неделя с понедельника у них с воскресения. У нас разница на 1 день. А в торговли это круто так как выходные самые пиковые дни и должы соответсвовать нашему календарю.
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32938786
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чем ошибка я могу сказать - ОЛАП использует функцию DATEPART для получения недели. Для этой функции надо задать с помощью SET DATEFIRST, что неделя начинается с понедельника.
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32938921
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВжикВ чем ошибка я могу сказать - ОЛАП использует функцию DATEPART для получения недели. Для этой функции надо задать с помощью SET DATEFIRST, что неделя начинается с понедельника.А можно сдесь по подробнее, я вот когда смотрю key там
{Fn Week(Tablename.fieldname)}, можно сделать to_char(Tablename.fieldname,'IW') (Oracle) и неделя будет нормальной. НО вот хочеться без редактирование key.
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32938964
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имел в виду для MS SQL. Для Oracle свои видимо решения, но путь должен быть тот же - сказать серверу что неделя с понедельника начинается.
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32938976
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВжикЯ имел в виду для MS SQL. Для Oracle свои видимо решения, но путь должен быть тот же - сказать серверу что неделя с понедельника начинается.
Вообщем решение одно это редактирование key и написание с помощью диалектов определенных СУБД которые из даты извлекут номер недели.
Если это так то тогда можно топик закрыть.
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32938997
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukovа connection string к OLAPу или сиквелу?
надо в data source базы ms as установить Current Language

но в моём случае это тоже не выход, ибо американцы считают 1-2 января (субота-воскресенье) как первая неделя. Для нас же первая неделя - это 3-9 января. Поэтому делаю всё равно view-шку

Мож кто знает как решить мой вопрос?
В кей фиелд пишеш (для Oracle)
To_char(TableName.FieldName,'IW') и тоже самое в наме фиелд.
Сейчас идеть 9 неделя а если извлекать то получаеться 9 неделя.
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32939045
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Другре решение - создать физически таблицу дат для процессирования измерения Дата, заполнить ее на свое усмотрение и не давать серверу использовать свою логику при построении измерения.
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32939052
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВжикДругре решение - создать физически таблицу дат для процессирования измерения Дата, заполнить ее на свое усмотрение и не давать серверу использовать свою логику при построении измерения.

Помоему поработать над кей филдами проше чем хранить календарь. Хотя у меня календярь в базе лежить, но мам я храню всякие последний день недели, месяца, года и т.д. Для join-нов. Удобно.
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32939067
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВжикДак все же о чем вопрос - про то, что считается первой неделей или что неделя начинается с понедельника или воскресенья?Для меня - первое, для OLAPMASTER - второе

ВжикВ чем ошибка я могу сказать - ОЛАП использует функцию DATEPART для получения недели. Для этой функции надо задать с помощью SET DATEFIRST, что неделя начинается с понедельника.Только проблема в том, что в запросы, которые передаёт OLAP нельзя вставить этот самый DATEFIRST, поэтому и приходится ставить в свойстве data source св-во Current Language

ВжикЯ имел в виду для MS SQL. Для Oracle свои видимо решения, но путь должен быть тот же - сказать серверу что неделя с понедельника начинается. Вобще-то правил, когда начинать неделю гораздо больше:
- Start with week in which January 1 occurs
- Start with the first week that has at least four days in the year
- Start with the first full week of the year

OLAPMASTERВ кей фиелд пишеш (для Oracle)
To_char(TableName.FieldName,'IW') и тоже самое в наме фиелд.
Сейчас идеть 9 неделя а если извлекать то получаеться 9 неделя.У меня MS SQL - так что не подходит.
пишу пока так:
case when Year(RepDate)=2005 then Week(RepDate)-1 else Week(RepDate) end
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32939738
Recoilme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял задачу:
-Надо в кубе неделю считать не с воскресенья а с понедельника?
То я решаю её так:
DatePart('ww',"VKUL_SALES"."INVOICEDATE",2)
Собака зарыта в циферке 2
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32939741
Recoilme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай, а номер недели - 'Week ' + Format(DatePart('ww',"VKUL_SALES"."INVOICEDATE",2))
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32939883
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Recoilme :
В MS SQL 2000 функция имеет такой синтаксис DATEPART ( datepart , date )
и третьего параметра у неё нет
по поводу понедельника см мой пост выше
http://www.sql.ru/forum/actualthread.aspx?tid=163651#1353224

"наша" неделя начинается с понедельника только в 2005 году, в остальных годах - по другому
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32940013
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, не морочьте голову с автоматическим измерением времени (с неделями особенно). Создавайте сами табличку календаря в вашем DWH и все будет в ажуре.
Константин Лисянский приводил не раз ссылку на прекрасный пример.
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32941728
Recoilme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dmitry Biryukov: я написал пример не для SQL, а для MS AS ...
По поводу номера недели:
Существует стандарт ISO-900Х (номера под рукой нет), согласно его если в первой неделе года количество дней меньше равно Х - эта неделя относится к предыдущему году. В 2005 году,например, именно такая неделя. Многие ERP системы (например аксапта) работают по этому стандарту. MS AS считает недели не по этому стандарту, а по календарю. Это просто надо иметь ввиду. Зачем с сиквулем то бороться?
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32954344
redcossack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поискав по форуму, так и не понял можно ли настройками источника данных или измерения добиться, чтобы первым днем недели считался понедельник, а не воскресенье.
Предлагают Current Language поставить Русский. Захожу в Data Sources -> закладка "Все" -> поле "Current Language", ставлю Русский. Пытаюсь перепроцессить измерение - получаю ошибку:
Код: plaintext
Detected two sibling members with the same name: Week10 (Week)
Очищаю поле "Current Language" - процессит нормально, но первый день недели - воскресенье. Неужели нельзя ему никак подсунуть SET DATEFIRST? Или как-то настроить Data Sources?
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32954425
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SET DATEFIRST подсунуть невозможно, но считать понедельник первым днём недели - можно. надо сделать так как вы написали
У вас проблема в другом. структуру измерения - в студию!
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32954784
redcossack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уровни: Year, Week, Day. Все параметры - по умолчанию. Измерение построено по полю (тип - smalldatetime) таблицы, полученному циклическим выполнением DateAdd(dd,1,) от начального значения '20040101' до конечного '20041231'.
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32955489
redcossack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Непонятно. Убрал с измерения запрет на дублирование имен. Процессинг прошел. Интересный результат: недели начинаются с понедельника, но в 2004 году две недели с номером 10, а с номером 9 - нету. Сориентируйте, пожалуйста, почему так происходит.
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32955500
redcossack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Одна десятая неделя - с 23 по 29 февраля, другая - с 1 по 7 марта
...
Рейтинг: 0 / 0
Просто забыл ну с кем не бывает (MS AS)
    #32955556
redcossack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что оказалось. Похоже это косяк функции DATENAME(). Заменил в формуле имени измерения для уровня Неделя функцию DATENAME() на DATEPART() и все встало на свои места.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Просто забыл ну с кем не бывает (MS AS)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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