При помощи одного форумчанина мы создали таблицу 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
- Имя: Эльдар Имамвердиев
- Откуда: Азербайджан, Баку
- Контактная информация:
-
imamverdiyeveldar
- Сообщения: 403
- Зарегистрирован: 01 мар 2019, 08:57
- Имя: Эльдар Имамвердиев
- Откуда: Азербайджан, Баку
- Контактная информация:
Re: Сложный запрос.
Решение нашел. Таблица view работает на все 100! но есть другая проблема. Сергей, возможно вы знаете, подскажите пожалуйста, записи создаются от имени админа в разных сущностях, и конечные суммы отображаются в этой таблице view, ok. но другой пользователь (из другой группы доступа - не видит эти записи созданные в view таблице. доступ полный) доступ я так понимаю, не применяется так как "это виртуальная сущность". Это можно как то исправить в phpmyadmin???
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Сложный запрос.
К сожалению я не знаю в чем может быть причина.
-
imamverdiyeveldar
- Сообщения: 403
- Зарегистрирован: 01 мар 2019, 08:57
- Имя: Эльдар Имамвердиев
- Откуда: Азербайджан, Баку
- Контактная информация:
Re: Сложный запрос.
а я нашел причину. проблема устранилась. но всеравно нужно ваше вмешательство. что я сделал, создал еще одну группу пользователей. дал все права на свете. (хотя и предыдушая была со всеми правами), создал пользователя, зашел - работает. этот глюк Руководителя насколько я понял.