Страница 1 из 2
Поле MySQL запрос по сущности со множественным выбором
Добавлено: 13 июн 2020, 00:29
alcompstudio
Добрый день!
Есть структура:
Клиенты
- Договора
Реклама
В
Клиентах через поле
MySQL запрос подсчитывается количество
Договоров (через прямой запрос ко вложенной сущности) - в поле
Количество Договоров на текущую дату. Все считает нормально.
В
Клиенты подключена сущность
Реклама через поле
Сущность со множественным выбором. Я хочу вывести количество Договоров в зависимости от "подключенной" Рекламы к Клиентам. Т.е. через запрос в сущности
Реклама подсчитать сумму по полю
Количество Договоров на текущую дату (из сущности
Клиенты)
Сейчас запрос так выглядит:
http://prntscr.com/syrg6t
В конфигурации сущности Клиенты:
http://prntscr.com/syriwy
Получается я вывел запрос (сумма значений) по полю, которое также имеет тип "запрос".
Ну и какой результат должен быть. Я вывел на странице записи сущности Реклама табличный список по связанному полю Клиенты
http://prntscr.com/syrjru - но почему-то не считает... Как правильно построить условие в запросе? (Если это конечно не связано с тем, что выборка идет по полю с множественным выбором, или тем, что у меня получается "запрос из запроса")
Re: Поле MySQL запрос по сущности со множественным выбором
Добавлено: 13 июн 2020, 08:20
support
Re: Поле MySQL запрос по сущности со множественным выбором
Добавлено: 13 июн 2020, 11:18
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 - тут смотрел)
Re: Поле MySQL запрос по сущности со множественным выбором
Добавлено: 13 июн 2020, 11:52
support
Достаточно
Но мне кажется вы что то не то делаете
Я хочу вывести количество Договоров
Тут нужно строит запрос к сущности Договора
Re: Поле MySQL запрос по сущности со множественным выбором
Добавлено: 13 июн 2020, 17:46
alcompstudio
Да, может я не то строю и нужно делать прямой запрос к сущности Договора. Она является подчиненной сущностью к Клиенты. А в Клиентах есть поле Сущность, где подключается Реклама.
Вот в Рекламе нужно выводить подсчет Договоров, которые созданы в Клиентах ну и соответствовали значению той самой Рекламы в Клиентах. Как создать запрос в сущности Реклама к сущности Договора? Подскажете?
http://prntscr.com/sz22rj - это структура. Я так понимаю, нужно строить подзапрос к сущности Договора, в нем через COUNT (*) считать кол-во созданных записей в Договорах?
И сразу второй вопрос, нужно по тем же Договорам подсчитать суммы из некоторых полей MySQL (в договорах).
Т.е. в первом случае нужно строить
http://prntscr.com/sz25ih
а если нужно сумму по полю, то так как-то?
http://prntscr.com/sz275b
Re: Поле MySQL запрос по сущности со множественным выбором
Добавлено: 14 июн 2020, 09:17
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)
Re: Поле MySQL запрос по сущности со множественным выбором
Добавлено: 14 июн 2020, 13:55
alcompstudio
что-то не получается... Нужно же в поле MySQL запрос это делать или в поле MySQL формула? а в условии что ставить?
http://prntscr.com/szg3mi
В опции Выбрать поле я поставил
Код: Выделить всё
SUM(select count(*) from app_entity_29 e29 where e29.parent_item_id=e.id)
в опции Условие
Получилась ошибка
Код: Выделить всё
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
Re: Поле MySQL запрос по сущности со множественным выбором
Добавлено: 14 июн 2020, 17:35
support
в поле MySQL запрос
Re: Поле MySQL запрос по сущности со множественным выбором
Добавлено: 29 сен 2020, 20:00
aik
Чем закончилась эта эпопея с ошибкой вылетающей?
Пытаюсь нечто похожее, аналогично вылетает в error
Re: Поле MySQL запрос по сущности со множественным выбором
Добавлено: 29 сен 2020, 21:19
alcompstudio
Там пришлось строить сложный запрос с подзапросом, обращался отдельно за помощью, сам не осилил... Не все так просто оказалось, нужны знания в построении MySQL запросов.