Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Декабрь 18, 2017, 06:11:36 am

Автор Тема: Странная сортировка дат  (Прочитано 753 раз)

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 66
  • Страна: ru
  • Рейтинг: +9/-0
    • Просмотр профиля
Странная сортировка дат
« : Март 21, 2017, 03:53:37 pm »
Приветствую!
Сделал в таблице вывод "месяц, год"
month(CREATEDAT) & ' ' & year(CREATEDAT)

Почему то за сен, окт, ноя 2016 года оказались в низу списка, выше пошли июл 2011 и наст. времени.

в таблице с выводом полной даты все нормально. Что может быть?

Оффлайн millik

  • Наставник
  • **
  • Сообщений: 55
  • Страна: by
  • Рейтинг: +22/-0
    • Просмотр профиля
Re: Странная сортировка дат
« Ответ #1 : Март 21, 2017, 09:50:47 pm »
Предположу следующие
month(CREATEDAT) & ' ' & year(CREATEDAT) - текстовая мера, соответственно в сортировке идет посимвольное сравнение.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Странная сортировка дат
« Ответ #2 : Март 22, 2017, 07:00:42 am »
Привет.
Все верно, сортировка текстом не даст ожидаемого результата.
Используйте функцию dual().
Например,
dual(month(DateId) & '-' & year(DateId),year(DateId) & num(month(DateId), '00')) as 'Месяц-год',

Неофициальный форум пользователей QlikView & Qlik Sense

Re: Странная сортировка дат
« Ответ #2 : Март 22, 2017, 07:00:42 am »

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 66
  • Страна: ru
  • Рейтинг: +9/-0
    • Просмотр профиля
Re: Странная сортировка дат
« Ответ #3 : Март 22, 2017, 11:21:13 am »
не помогает. результаты те же.
Сентябрь-ноябрь 2016 среди 2011 года.  :P

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 66
  • Страна: ru
  • Рейтинг: +9/-0
    • Просмотр профиля
Re: Странная сортировка дат
« Ответ #4 : Март 22, 2017, 11:25:17 am »
Решил в скрипте сортировку сделать. Тогда все ОК. Но также не должно быть?!

Finance:
load *
  from lib://SSD/Finance.qvd (qvd)
;

NoConcatenate
d4:
load *
Resident Finance Order by CREATEDAT;
drop table Finance;

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Странная сортировка дат
« Ответ #5 : Март 22, 2017, 11:59:23 am »
Почему это не должно быть?
Именно так и работает.
Или вы пытались сделать сортировку в выражении для измерения?
Тогда надо было использовать aggr().
Но это не лучший вариант.
Лучше всего использовать измерения подготовленные в скрипте.

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 66
  • Страна: ru
  • Рейтинг: +9/-0
    • Просмотр профиля
Re: Странная сортировка дат
« Ответ #6 : Март 22, 2017, 01:17:13 pm »
Дело в том, что я это делал в диаграммах (QS).
Спасибо за подсказку, что измерения лучше подготавливать в скрипте.

"Почему это не должно быть?" Грузим данные как есть, и мы же должны свободно сортировать в созданных таблицах (диаграммы). Полные даты (по типу: 01.11.2011) нормально сортируются, а num(CREATEDAT) уже нет... как это может быть?

08.11.2011 - 40702
09.11.2011 - 40703
11.09.2016 - 42624
...
16.11.2016 - 42690
10.06.2011 - 40704
11.06.2011 - 40705
Причем сортировка стоит по Num... )

Неофициальный форум пользователей QlikView & Qlik Sense

Re: Странная сортировка дат
« Ответ #6 : Март 22, 2017, 01:17:13 pm »

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Странная сортировка дат
« Ответ #7 : Март 22, 2017, 03:16:38 pm »
Попробуйте Сортировку по выражению и пропишите там выражение для даты.

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 66
  • Страна: ru
  • Рейтинг: +9/-0
    • Просмотр профиля
Re: Странная сортировка дат
« Ответ #8 : Март 23, 2017, 01:35:08 pm »
Еще заметил, что сортировка в легенде тоже некорректно работает.
Минимальный год находится всегда внизу, не зависимо от того, что указано в настройках сортировки.
В данном случае Месяц у меня на Авто, Год с сортировкой по численным значениям По возрастанию.
Здесь что можно сделать?