|
Выбрать различные и упорядочить по полю, которого нет в выборке |
☑ |
0
Kifsif
25.08.14
✎
20:07
|
Есть факт: если в запросе указано ключевое слово РАЗЛИЧНЫЕ
и в предложении УПОРЯДОЧИТЬ ПО указано поле, отсутствующее в списке
выборки, то при выполнении такого запроса будет выдана ошибка.
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗаказТовара.Дата,
ЗаказТовара.Клиент
ИЗ
Документ.ЗаказТовара КАК ЗаказТовара
УПОРЯДОЧИТЬ ПО
ЗаказТовара.Номер
Если в запросе убрать РАЗЛИЧНЫЕ, то ошибки не будет.
Почему-то я не чувствую этот код. Т.е. не могу понять логики за таким поведением. Вот есть различные, но номер-то у них все равно есть, почему бы не упорядочить.
Не могли бы вы помочь понять, почему так сделано.
|
|
1
Apokalipsec
25.08.14
✎
20:11
|
могу предложить почитать про основы реляционных бд.
|
|
2
Крошка Ру
25.08.14
✎
20:13
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗаказПокупателя.Дата,
ЗаказПокупателя.Контрагент
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
УПОРЯДОЧИТЬ ПО
ЗаказПокупателя.Номер
Все работает. ЧЯДНТ?
|
|
3
mehfk
25.08.14
✎
20:28
|
(0) замени на
ВЫБРАТЬ
ЗаказТовара.Дата,
ЗаказТовара.Контрагент
ИЗ
Документ.ЗаказТовара КАК ЗаказТовара
СГРУППИРОВАТЬ ПО
ЗаказТовара.Дата,
ЗаказТовара.Контрагент
УПОРЯДОЧИТЬ ПО
MAX(ЗаказТовара.Номер)
|
|
4
mistеr
25.08.14
✎
20:42
|
(0) РАЗЛИЧНЫЕ это группировка. Упорядочивание выполняется после группировки. После группировки номера уже нет.
(3) Запрос не эквивалентен исходному.
|
|
5
mehfk
25.08.14
✎
21:54
|
(4) Да, действительно, 8.3 в режиме совместимости с 8.1 автоматически добавляет поля упорядочивания в SELECT
SELECT DISTINCT
_Document15_Q_000_T_001._Date_Time AS f_1,
_Document15_Q_000_T_001._Fld16RRef AS f_2,
_Document15_Q_000_T_001._Number AS _sf_1
FROM
_Document15 _Document15_Q_000_T_001 WITH(NOLOCK)
ORDER BY
_sf_1
|
|
6
Kifsif
25.08.14
✎
22:19
|
(4) Спасибо.
|
|