2 / 1 / 1
Регистрация: 27.07.2018
Сообщений: 21
1

criteriaBuilder.max(criteriaBuilder.selectCase()

24.02.2023, 17:55. Показов 926. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
В скл имеется такая конструкция:
SQL
1
2
3
4
SELECT qwe.field1, MAX(CASE WHEN STATUS = 'created' OR STATUS = 'sign' THEN STATUS ELSE NULL END) AS STATUS
FROM TABLE
LEFT JOIN statusTable ON statusTable.qwe_id = qwe.id
GROUP byqwe.field1.
Так вот в скл все работает, на выходе 2 столбца с field1 и столбец status, который выводит только, если есть статус created(их может быть несколько), если created нет, то null.
Теперь пытаюсь написать критерию.
Java
1
criteriaBuilder.multiselect(root.get("field1"), criteriaBuilder.max(criteriaBuilder.selectCase().when(root2.get('status').in('created', 'sign'), root2.get('status')).otherwise(null)));
на что получаю ошибку reason no instance(s) of type variable(s) exist so that object conforms to Number.
То бишь criteriaBuilder.max принимает только тип Number. Но если я привожу к типу number,то в sql добавляется cast и соответственно падает, так как строка status(created), не может быть преобразован в (int, long и тд)
Самое интересное, что просто criteriaBuilder.max(root2.get('status')) работает(берет по алфавиту), но именно с case нет, но без case выводится не тот результат.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2023, 17:55
Ответы с готовыми решениями:

CriteriaBuilder. Смещение времени суток
Добрый день! В базе хранятся записи на каждый час. Необходимо выбрать записи за период и...

Даны действительные числа a, b. Найти: u = max (a, b), v = max (ab, a + b), с = max (u5 + v5, 256).
Даны действительные числа a, b. Найти: u = max (a, b), v = max (ab, a + b), с = max (u5 + v5, 256)....

Написать программу min(A1, B1) + max(A2, B2) + min(A3, B3) + max(A1, A3)
Написать программу для вычисления выражения: min(A1, B1) + max(A2, B2) + min(A3, B3) + max(A1, A3)....

CriteriaBuilder и CriteriaQuery основные понятия: Не доходит!
Здравствуйте! Перелистала кучу документации по данному вопросу, но все равно не доходит НУ НИКАК!...

Даны векторы a и b , состоящие из семи компонентов. Найти max(max(Ai), max(Bi), max(¦Ai-Bi¦), max(Ai+Bі),1)
Даны векторы a и b , состоящие из семи компонентов. Найти max(max(Ai), max(Bi), max(¦Ai-Bi¦),...

0
24.02.2023, 17:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2023, 17:55
Помогаю со студенческими работами здесь

9. Найти максимальный элемент в массиве a1.an, используя соотношение (метод деления пополам) max (a1.an)=max (max (a1.an/2), max (an/2+1, an)
Помогите пожалуйста решить задачу.

Вычислить произведение Max(A) Max(B), где Max(A) (Max(B)) - максимальный элемент в одномерной матрице
Напишите процедуру на языке VBA для вычисления произведения Max(A) Max(B) , где Max(A) (Max(B))...

Задать значения вещественным элементам массивов A(6),B(3),C(10) и вычислить Y=max(max(A),max(B),max(C)
Задать значения вещественным элементам массивов A(6),B(3),C(10) и вычислить...

Используя SELECTCASE, по введенному номеру выбрать соответствующую марку стали
Здравствуйте. HELP Марки электротехнической стали пронумерованы следующим образом: 1 – сталь...

Даны различные действительные числа a, b, c, d. Найти max (max(a, b), max(a, c), max(a, d)
Даны различные действительные числа a, b, c, d. Найти max (max(a, b), max(a, c), max(a, d)).


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru