Условие по msq запросу, для сгрупированных пользователей

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

Re: Условие по msq запросу, для сгрупированных пользователей

Сообщение support »

Марина, скриншот можно прикрепить во вложениях.

Персональная демо создается в личном кабинете https://www.rukovoditel.net.ru/demo.php

Сделайте резервную копию базы данных (экспорт приложения) и восстановите ее в демо версии.

А сюда пришлите ссылку на демо.
Вложения
img1.png
remchik
Сообщения: 254
Зарегистрирован: 19 сен 2019, 11:32
Имя: Remchik
Откуда: Москва

Re: Условие по msq запросу, для сгрупированных пользователей

Сообщение remchik »

INNER JOIN - смотрите мануал по mysql
ну и как Сергей написал - вложенные запросы.
Связь как раз по пользователю.
***
Тружусь как пчелка
***
SQL,BpmOnline,Creatio,BpmSoft,.NET,SAP WMS,MS SQL Server,Windows Server,IIS
Pskargo@ya.ru
Сообщения: 7
Зарегистрирован: 05 апр 2024, 10:45
Имя: Лясковская Марина
Откуда: Ростов-на-Дону
Организация: ООО "Арго"

Re: Условие по msq запросу, для сгрупированных пользователей

Сообщение Pskargo@ya.ru »

Постараюсь максимально описать суть желаемого.
У нас есть понятие _ ИД – это условный день работы инженера.
Внутри сущности ПАКЕТ (имеется ввиду, пакет работ), есть три параллельные сущности:
- ОТДЕЛ. Это как мы планируем выполнить пакет. В этой сущности мы выбираем ОТДЕЛ, который займется ПАКЕТОМ работ (может быть один отдел, может быть несколько), ставим временной период на его выполнение, и запланированное количество ИД
- РАЗДЕЛ. Сейчас не рассматриваем.
- ЗАДАЧИ. Это фактически поставленные мелкие ЗАДАЧИ, которые ставятся на одного ПОЛЬЗОВАТЕЛЯ (инженера, сгруппирован в свою очередь в какой-то отдел)
Тут наверное может возникнуть путаница с отделами. Так есть сущность 68 ОТДЕЛЫ и 64 ОТДЕЛ. 68 ОТДЕЛЫ это сущность внутри которой заведены пользователи, а сущность 64 ОТДЕЛ, находится внутри пакета, это планы на кокой либо из отделов. В этой сущности как заголовок мы выбираем сущность 68 ОТДЕЛЫ.
Цель
Увидеть в одном месте, сколько было запланировано потратить ИД конкретному отделу внутри ПАКЕТА, и сколько фактически было потрачено дней ИДф инженерами, сидящими в этом отделе. Поэтому необходимо из ЗАДАЧИ взять сумму ИДф и положить ее в 64 ОТДЕЛ, с условием, что задача принадлежит к этому пакету и назначена на пользователя из этого отдела.
Для примера в самой сущности ПАКЕТ я смогла собрать и планируемы ИД и ИДф. Так как это родительская сущность, у меня получилось собрать нужную информацию из вложенных сущностей в родительскую стандартным функционалам. А вот собрать когда сущности параллельны не получается. В Итоге общая аналитика у меня прекрасно работает, а вот по конкретным отделам выяснить кто лажает, не могу.
Вложения
Желаемый результат.png
Поле 330 в сущности 41.png
Поле 326 в сущности 41.png
конфигурация сущности 41 ЗАДАЧИ.png
Поле 774, которое не работает.png
поле 698 сущности 64.png
конфигурация сущности 64 ОТДЕЛ.png
Структура. Общий вид.png
Pskargo@ya.ru
Сообщения: 7
Зарегистрирован: 05 апр 2024, 10:45
Имя: Лясковская Марина
Откуда: Ростов-на-Дону
Организация: ООО "Арго"

Re: Условие по msq запросу, для сгрупированных пользователей

Сообщение Pskargo@ya.ru »

Ссылка на демо

https://rukovoditel.cloud/demo/3.5/inde ... mo_id=3185
логин - Марина Л
пароль - гость
spanditime
Сообщения: 1
Зарегистрирован: 12 апр 2024, 21:56
Имя: Евгений
Откуда: Фролов

Re: Условие по msq запросу, для сгрупированных пользователей

Сообщение spanditime »

Написал такой запрос:

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

select 
  sum(task.field_330)
from app_entity_41 task
where task.field_326
in (
  select user.id from app_entity_1 user where user.parent_item_id = e.field_698
)
Однако поле выводит 0.0 если убрать агрегатную ф-цию(и добавить limit 1 например или указать id определенной задачи) поле становится пустым! (хотя должно содержать значение ИДф этой задачи).
Пример:

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

select 
  task.field_330
from app_entity_41 task
where task.id = <id какой нибудь существующей задачи> limit 1  
Поле 330 по которому пытаемся получить сумму тоже содержит формулу

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

{9}*[504]/8
Возможно это баг?
Завел дополнительное поле в сущности Задачи - ИДф тест - числовое значение, и при вводе данных туда запрос первый работает.

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

select 
  sum(task.field_<id поля которое является просто числовым значением>)
from app_entity_41 task
where task.field_326
in (
  select user.id from app_entity_1 user where user.parent_item_id = e.field_698
)
Экспериментальным путем выяснено что обращение к любому полю вида "SQL формула" в sql запросе приводит к такому поведению.
т.е даже такой простой запрос как

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

select 
  field_751
from app_entity_64 where id = e.id

где field_751 (Нагрузка) - поле с формулой

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

[703]/[700]
Приводит к тому же результату (отображаемое поле пустое).
Аватара пользователя
support
Техническая поддержка
Сообщения: 8996
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Условие по msq запросу, для сгрупированных пользователей

Сообщение support »

Нет, это не баг, функцию нужно будет продублировать в запросе. она автоматом не подтягивается в запрос.
Ответить