Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Group by + Order by : как сделать, чтобы итоги по группировкам находились внизу?
|
|||
|---|---|---|---|
|
#18+
Когда делаю запрос с использованием group by ... with rollup а потом сортировку order by ... все сгруппированные поля (содержащие null) всплывают наверх. Как сделать, чтобы они "тонули", то есть чтоб итоги по группировкам находились внизу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2002, 08:29 |
|
||
|
Group by + Order by : как сделать, чтобы итоги по группировкам находились внизу?
|
|||
|---|---|---|---|
|
#18+
Функция GROUPING возвращает признак для промежуточных сумм, что позволит вам вместо NULL подставить такие значения, которые дадут нужный вам порядок сортировки (либо можно сортировать с учетом значения GROUPING) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2002, 08:57 |
|
||
|
Group by + Order by : как сделать, чтобы итоги по группировкам находились внизу?
|
|||
|---|---|---|---|
|
#18+
такой изврат я уже использовал: заменял null при помощи IsNull() на 999999 или 'яяяяяяя' Но неужели по-нормальному нельзя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2002, 09:03 |
|
||
|
Group by + Order by : как сделать, чтобы итоги по группировкам находились внизу?
|
|||
|---|---|---|---|
|
#18+
А как вы хотите чтобы сортировались значения NULL ? В одном SELECT по возрастанию, в другом SELECT по убыванию, причем сервер сам решал это за вас ? IMHO никаких "извратов" здесь нет SELECT TOP 100 PERCENT CASE WHEN GROUPING(a.inv_period) = 1 THEN 'x-- Total --x' ELSE a.inv_period END AS inv_period, CASE WHEN GROUPING(a.kl) = 1 THEN 'x-- Total in ' +a.inv_period+ ' period --x' ELSE a.kl END AS kl, .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2002, 09:17 |
|
||
|
Group by + Order by : как сделать, чтобы итоги по группировкам находились внизу?
|
|||
|---|---|---|---|
|
#18+
спасибо, но все-таки это изврат. ибо что мы получим, выполнив в QA if null>0 print 1 if null<0 print 2 if null=0 print 3 ? ничего. The command(s) completed successfully. и всё. как же тогда серверу null сортировать???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2002, 09:35 |
|
||
|
Group by + Order by : как сделать, чтобы итоги по группировкам находились внизу?
|
|||
|---|---|---|---|
|
#18+
Давайте не будем валить в одну кучу СОРТИРОВКУ и СРАВНЕНИЕ полей содержащих NULL. В первом случае для любого поля независимо от его значения и значений других полей будет сгенерирован ключ, по которому собственно и будет проходить сортировка. Ключ можно сгененрировать и для поля, содержащего NULL. При сравнении значение NULL приобретает несколько другой смысл (троичная логика, слышали ?), который можно регулировать с помощью установок сервера set ansi_nulls on go if null<>0 print 1 if null=null print 2 if null<>null print 3 if null is null print 4 go set ansi_nulls off go if null<>0 print 11 if null=null print 12 if null<>null print 13 if null is null print 14 go ЗЫ Кроме того, а вы не собирались создавать какие-то символьные комментарии к промежуточным суммам ? Или вашим пользователм они не нужны ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2002, 09:54 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1823357]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
88ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 276ms |
| total: | 478ms |

| 0 / 0 |
