Имя: Пароль:
1C
1С v8
Выбрать различные и упорядочить по полю, которого нет в выборке
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) Спасибо.
AdBlock убивает бесплатный контент. 1Сергей