powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Условие в Order By
3 сообщений из 3, страница 1 из 1
Условие в Order By
    #40031522
Oldnick1972
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот такой запрос:
Код: sql
1.
2.
3.
4.
5.
SELECT Product.IdProduct, Product.ProductName, Sum(OperationRow.Remain), Last(OperationRow.RetailPrice), 
FROM Product INNER JOIN (OperationType INNER JOIN (OperationList INNER JOIN OperationRow ON OperationList.IdOperationList = OperationRow.IdOperationList) ON OperationType.IdOperationType = OperationList.IdOperationType) ON Product.IdProduct = OperationRow.IdProduct
WHERE (((OperationType.IdOperationTypeLevelThree)=15
GROUP BY Product.IdProduct, Product.ProductName
ORDER BY IIf(Sum(OperationRow.Remain)=0,-1,1) DESC, Product.ProductName;


Он работает и является источником ленточной формы. В Order By сделано так, чтобы строки с нулевыми остатками оказывались в конце. Теперь мне нужно чтобы порядок сортировки выбирался значением функции (либо так как есть, либо чисто по алфавиту). Что-то такое:
Код: sql
1.
ORDER BY IIF (Func1 = 0, (IIf(Sum(OperationRow.Remain)=0,-1,1) DESC, Product.ProductName), Product.ProductName)


Или
Код: sql
1.
2.
ORDER BY CASE Func1 WHEN 0 THEN (IIf(Sum(OperationRow.Remain)=0,-1,1) DESC, Product.ProductName)  
         ELSE Product.ProductName END;


Оба варианта в различных вариациях вызывают сообщение "Пропущен оператор".
Access 2016.
...
Рейтинг: 0 / 0
Условие в Order By
    #40031529
Oldnick1972, у вас не хватает закрывающих скобок в IIF и лишняя в конце.
...
Рейтинг: 0 / 0
Условие в Order By
    #40031618
Oldnick1972
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий,
Код: sql
1.
IIF (Func1 = 0, (IIf(Sum(OperationRow.Remain)=0,-1,1) DESC, Product.ProductName), Product.ProductName)


Вы имеете ввиду скобку перед вторым IIF и после первого Product.ProductName?
Но это всё (IIf(Sum(OperationRow.Remain)=0,-1,1) DESC, Product.ProductName) - исполняющийся вариант если Func1=0...
Как система поймёт, что DESC и Product.ProductName тоже относятся к этому варианту... там же нужна запятая?
Или я не понимаю...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Условие в Order By
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]