Сложный запрос.

Все вопросы/проблемы по установке и использовании.
Ответить
imamverdiyeveldar
Сообщения: 403
Зарегистрирован: 01 мар 2019, 08:57
Имя: Эльдар Имамвердиев
Откуда: Азербайджан, Баку
Контактная информация:

Сложный запрос.

Сообщение imamverdiyeveldar »

При помощи одного форумчанина мы создали таблицу view . Работает как часы.

CREATE VIEW `app_entity_133` AS select
`ap91`.`id` AS `id`,
`ap91`.`date_added` AS `date_added`,
`ap91`.`date_updated` AS `date_updated`,
`ap91`.`created_by` AS `created_by`,
`ap91`.`field_813` AS `field_1281`,
sum(`ap94`.`field_852` * `ap94`.`field_853`) AS `field_1282`,
sum(`ap96`.`field_877` * `ap96`.`field_878`) AS `field_1283`,
COALESCE((0-sum(`ap94`.`field_852` * `ap94`.`field_853`)),0)+COALESCE((0+sum(`ap96`.`field_877` * `ap96`.`field_878`)),0) AS `field_1284`
from ((((`app_entity_91` `ap91` left join `app_entity_93` `ap93` on(`ap91`.`id` = `ap93`.`field_840`)) left join `app_entity_95` `ap95` on(`ap91`.`id` = `ap95`.`field_866`)) left join `app_entity_94` `ap94` on(`ap94`.`parent_item_id` = `ap93`.`id`)) left join `app_entity_96` `ap96` on(`ap96`.`parent_item_id` = `ap95`.`id`)) where `ap94`.`field_852` > 0 or `ap96`.`field_877` > 0 group by `ap91`.`id`,`ap91`.`date_added`,`ap91`.`date_updated`,`ap91`.`created_by`,`ap91`.`field_813`;SELECT * FROM `app_entity_133_old` WHERE 1

Теперь же, нужно в поле `field_1282`, добавить сумму другого поля другой таблицы (сейчас он считает сумму определенных полей определенной таблицы-а надо чтобы еще с нескольких таблиц подтягивал значения).
так же с полем `field_1283` ...

Попытался сделать так:

CREATE VIEW `app_entity_133` AS select
`ap91`.`id` AS `id`,
`ap91`.`date_added` AS `date_added`,
`ap91`.`date_updated` AS `date_updated`,
`ap91`.`created_by` AS `created_by`,
`ap91`.`field_813` AS `field_1281`,
sum(`ap94`.`field_852` * `ap94`.`field_853`)+sum(`ap135`.`field_1333`) AS `field_1282`,
sum(`ap96`.`field_877` * `ap96`.`field_878`)+sum(`ap135`.`field_1334`) AS `field_1283`,
COALESCE((0-sum(`ap94`.`field_852` * `ap94`.`field_853`)),0)+COALESCE((0+sum(`ap96`.`field_877` * `ap96`.`field_878`)),0) AS `field_1284`
from (((((`app_entity_91` `ap91` left join `app_entity_93` `ap93` on(`ap91`.`id` = `ap93`.`field_840`)) left join `app_entity_95` `ap95` on(`ap91`.`id` = `ap95`.`field_866`)) left join `app_entity_135` `ap135` on(`ap91`.`id` = `ap135`.`field_1297`)) left join `app_entity_94` `ap94` on(`ap94`.`parent_item_id` = `ap93`.`id`)) left join `app_entity_96` `ap96` on(`ap96`.`parent_item_id` = `ap95`.`id`)) where `ap94`.`field_852` > 0 or `ap96`.`field_877` > 0 or `ap135`.`field_1333` > 0 or `ap135`.`field_1334` > 0 group by `ap91`.`id`,`ap91`.`date_added`,`ap91`.`date_updated`,`ap91`.`created_by`,`ap91`.`field_813`;SELECT * FROM `app_entity_133_old` WHERE 1

не получилось... вообще непонятные суммы считает. хотя я всего лишь добавил поля которые надо "досчитать"
Это может быть связано с тем что ap93 и ap94 сушности с подсущностями... а ap135 сущность без подсущностей.
imamverdiyeveldar
Сообщения: 403
Зарегистрирован: 01 мар 2019, 08:57
Имя: Эльдар Имамвердиев
Откуда: Азербайджан, Баку
Контактная информация:

Re: Сложный запрос.

Сообщение imamverdiyeveldar »

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

Re: Сложный запрос.

Сообщение support »

К сожалению я не знаю в чем может быть причина.
imamverdiyeveldar
Сообщения: 403
Зарегистрирован: 01 мар 2019, 08:57
Имя: Эльдар Имамвердиев
Откуда: Азербайджан, Баку
Контактная информация:

Re: Сложный запрос.

Сообщение imamverdiyeveldar »

support писал(а): 12 июн 2020, 15:41 К сожалению я не знаю в чем может быть причина.
а я нашел причину. проблема устранилась. но всеравно нужно ваше вмешательство. что я сделал, создал еще одну группу пользователей. дал все права на свете. (хотя и предыдушая была со всеми правами), создал пользователя, зашел - работает. этот глюк Руководителя насколько я понял.
Ответить