Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как лучше всего datepart("mm",'20150901') вывести 09?  [new]
Pvase
Member

Откуда:
Сообщений: 995
Суть проблемы.
В OLAP кубах используется измерения дата-время. В нем есть поля, Год, Месяц и т.д., в которых хранятся данные по годам, месяцам соответственно. Если делать выборку в SQL и сортировку по Год, Месяц - то все происходит хорошо. Но вот в кубах почему то происходит преобразрвание в строку при сортировке. Соответсвенно порядок месяцев: 1,10,11,12,2,3,4,5,6,7,8,9 и это не хорошо. Поэтому есть задумка поле Год и Месяц переделать на String, все равно Analysis Services так делает, и заполнить поле с лидирующими нулями. Вопрос. Как лучше сделать такое заполнение?
12 окт 15, 15:46    [18268084]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше всего datepart("mm",'20150901') вывести 09?  [new]
iap
Member

Откуда: Москва
Сообщений: 47045
Pvase,

правильнее, наверно, для сортировки получать строку 'YYYYMM'?
Тогда
CONVERT(CHAR(6),[Date],112)
12 окт 15, 15:50    [18268125]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше всего datepart("mm",'20150901') вывести 09?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Pvase,

в кубе в свойствах атрибута можно задать нужный вид сортировки, поищите, заем делать костыль если есть встроенное решение.
12 окт 15, 15:51    [18268134]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше всего datepart("mm",'20150901') вывести 09?  [new]
tarrus
Member

Откуда: Bergen
Сообщений: 831
Pvase
Суть проблемы.
В OLAP кубах используется измерения дата-время. В нем есть поля, Год, Месяц и т.д., в которых хранятся данные по годам, месяцам соответственно. Если делать выборку в SQL и сортировку по Год, Месяц - то все происходит хорошо. Но вот в кубах почему то происходит преобразрвание в строку при сортировке. Соответсвенно порядок месяцев: 1,10,11,12,2,3,4,5,6,7,8,9 и это не хорошо. Поэтому есть задумка поле Год и Месяц переделать на String, все равно Analysis Services так делает, и заполнить поле с лидирующими нулями. Вопрос. Как лучше сделать такое заполнение?


Так сортируйте по ключу, а не по имени. Это настраивается у каждого аттрибута.
12 окт 15, 15:52    [18268135]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше всего datepart("mm",'20150901') вывести 09?  [new]
beggar_21
Member

Откуда:
Сообщений: 27
Да, сортировать нужно по ключу атрибута. Та же песня будет при сортировке имен месяцев.
12 окт 15, 16:00    [18268210]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить