Поле MySQL запрос по сущности со множественным выбором

Все вопросы/проблемы по установке и использовании.
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Поле MySQL запрос по сущности со множественным выбором

Сообщение alcompstudio »

Добрый день!

Есть структура:

Клиенты
- Договора
Реклама


В Клиентах через поле MySQL запрос подсчитывается количество Договоров (через прямой запрос ко вложенной сущности) - в поле Количество Договоров на текущую дату. Все считает нормально.

В Клиенты подключена сущность Реклама через поле Сущность со множественным выбором. Я хочу вывести количество Договоров в зависимости от "подключенной" Рекламы к Клиентам. Т.е. через запрос в сущности Реклама подсчитать сумму по полю Количество Договоров на текущую дату (из сущности Клиенты)

Сейчас запрос так выглядит:

http://prntscr.com/syrg6t

В конфигурации сущности Клиенты:

http://prntscr.com/syriwy

Получается я вывел запрос (сумма значений) по полю, которое также имеет тип "запрос".

Ну и какой результат должен быть. Я вывел на странице записи сущности Реклама табличный список по связанному полю Клиенты

http://prntscr.com/syrjru - но почему-то не считает... Как правильно построить условие в запросе? (Если это конечно не связано с тем, что выборка идет по полю с множественным выбором, или тем, что у меня получается "запрос из запроса")
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Поле MySQL запрос по сущности со множественным выбором

Сообщение support »

Используйте find_in_set viewtopic.php?p=15213#p15213
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Поле MySQL запрос по сущности со множественным выбором

Сообщение alcompstudio »

Пробовал и это выражение, но все равно не считает ... http://prntscr.com/syxc6w

Как правильно построить? Мне ж нужно в списке значений (поле 417) выбрать/сравнить с текущим id, правильно. И при совпадении должно просуммировать такие найденные записи.

Я уже экспериментировал как только можно)

find_in_set(id,[417])
find_in_set(e.id,[417])=e.id
find_in_set(id,[417])=e.id
find_in_set(id,[417])=id
find_in_set(e.id,[417])>0
find_in_set(id,[417])>0

Все равно результат 0 выдает... Что не так ставлю. Вроде по синтаксису правильно должно быть https://oracleplsql.ru/mysql-function-find_in_set.html - тут смотрел)
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Поле MySQL запрос по сущности со множественным выбором

Сообщение support »

Достаточно

Код: Выделить всё

find_in_set(e.id,[417])
Но мне кажется вы что то не то делаете
Я хочу вывести количество Договоров
Тут нужно строит запрос к сущности Договора
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Поле MySQL запрос по сущности со множественным выбором

Сообщение alcompstudio »

Да, может я не то строю и нужно делать прямой запрос к сущности Договора. Она является подчиненной сущностью к Клиенты. А в Клиентах есть поле Сущность, где подключается Реклама.

Вот в Рекламе нужно выводить подсчет Договоров, которые созданы в Клиентах ну и соответствовали значению той самой Рекламы в Клиентах. Как создать запрос в сущности Реклама к сущности Договора? Подскажете?

http://prntscr.com/sz22rj - это структура. Я так понимаю, нужно строить подзапрос к сущности Договора, в нем через COUNT (*) считать кол-во созданных записей в Договорах?

И сразу второй вопрос, нужно по тем же Договорам подсчитать суммы из некоторых полей MySQL (в договорах).

Т.е. в первом случае нужно строить http://prntscr.com/sz25ih
а если нужно сумму по полю, то так как-то? http://prntscr.com/sz275b
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Поле MySQL запрос по сущности со множественным выбором

Сообщение support »

Т.е. в первом случае нужно строить
Да, тут вы на правильном пути.

Код: Выделить всё

SUM(select count(*) from app_entity_29 e29 where e29.parent_item_id=e.id)
а если нужно сумму по полю, то так как-то?

Код: Выделить всё

SUM(select SUM([347])  from app_entity_29 e29 where e29.parent_item_id=e.id)
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Поле MySQL запрос по сущности со множественным выбором

Сообщение alcompstudio »

что-то не получается... Нужно же в поле MySQL запрос это делать или в поле MySQL формула? а в условии что ставить?

http://prntscr.com/szg3mi

В опции Выбрать поле я поставил

Код: Выделить всё

SUM(select count(*) from app_entity_29 e29 where e29.parent_item_id=e.id)
в опции Условие

Код: Выделить всё

find_in_set(e.id,[417])
Получилась ошибка

Код: Выделить всё

Database Error: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select count(*) from app_entity_29 e29 where e29.parent_item_id=e.id) from app_e' at line 1
Query: select e.* , (IFNULL( (select SUM(func100.field_749+0) from app_entity_45 func100 where func100.id>0 and func100.parent_item_id=e.id ) ,0)) as field_751,IFNULL((select SUM(select count(*) from app_entity_29 e29 where e29.parent_item_id=e.id) from app_entity_27 msq where find_in_set(e.id,msq.field_417) limit 1),0) as field_755 from app_entity_36 e where e.id>0 order by e.field_335 desc limit 0, 20
Page: /crm/index.php?module=items/listing
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Поле MySQL запрос по сущности со множественным выбором

Сообщение support »

в поле MySQL запрос
aik
Сообщения: 480
Зарегистрирован: 12 апр 2017, 10:09
Имя: Антон
Откуда: земля

Re: Поле MySQL запрос по сущности со множественным выбором

Сообщение aik »

Чем закончилась эта эпопея с ошибкой вылетающей?

Пытаюсь нечто похожее, аналогично вылетает в error
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Поле MySQL запрос по сущности со множественным выбором

Сообщение alcompstudio »

Там пришлось строить сложный запрос с подзапросом, обращался отдельно за помощью, сам не осилил... Не все так просто оказалось, нужны знания в построении MySQL запросов.
Ответить