Страница 1 из 2
Вывод суммы значений связанных записей
Добавлено: 26 сен 2023, 00:13
Ashita
Добрый день, уже всю голову поломал...
Есть необходимость просчитывать суммы связанных записей, но никак не могу добавить нужное условие...
в итоге считает либо все записи основной сущности, либо - 0
Структура:
1. Сущность "Товары в накладной (42)" -- поле "количество (421)" - к ней делаю из сущности заказ Mysql запрос
2. Сущность "Заказ (28)" -- поле "количество товаров (438)" - делаю запрос к сущности "товары в накладной" (SUM([421])
В поле условие - при добавлении, например, id - выполняется подсчет 30 объектов из сущности "товары в накладной".
Как сделать чтобы условие фильтровало количество записей из списка указанного в заказе, сейчас их 10....
Re: Вывод суммы значений связанных записей
Добавлено: 26 сен 2023, 06:42
Fait
Ashita писал(а): 26 сен 2023, 00:13
Добрый день, уже всю голову поломал...
Есть необходимость просчитывать суммы связанных записей, но никак не могу добавить нужное условие...
в итоге считает либо все записи основной сущности, либо - 0
Структура:
1. Сущность "Товары в накладной (42)" -- поле "количество (421)" - к ней делаю из сущности заказ Mysql запрос
2. Сущность "Заказ (28)" -- поле "количество товаров (438)" - делаю запрос к сущности "товары в накладной" (SUM([421])
В поле условие - при добавлении, например, id - выполняется подсчет 30 объектов из сущности "товары в накладной".
Как сделать чтобы условие фильтровало количество записей из списка указанного в заказе, сейчас их 10....
Сделайте поле 438 в сущности "Заказ" типом MySQL формула и вставьте это:
Код: Выделить всё
SELECT SUM(field_421) FROM app_entity_42 WHERE parent_item_id=[id]
А если вам нужно просто количество записей в товарах, то можете написать так:
Код: Выделить всё
SELECT COUNT(*) FROM app_entity_42 WHERE parent_item_id=[id]
Но обратите внимание, это работает только в том случае, если сущность "Товары в накладной" является вложенной.
Если эта сущность является связанной, то тогда формула будет следующей:
Код: Выделить всё
SELECT SUM(field_421) FROM app_entity_42 WHERE id in (SELECT id FROM app_related_items_28_42 WHERE entity_28_items_id=[id])
Re: Вывод суммы значений связанных записей
Добавлено: 26 сен 2023, 13:26
Ashita
О боги!! Спасибо огромное - последний вариант действительно заработал.
Что - то и не думал даже про формулу...
Re: Вывод суммы значений связанных записей
Добавлено: 26 сен 2023, 15:16
Fait
Ashita писал(а): 26 сен 2023, 13:26
О боги!! Спасибо огромное - последний вариант действительно заработал.
Что - то и не думал даже про формулу...
Рад помочь

Re: Вывод суммы значений связанных записей
Добавлено: 26 сен 2023, 16:21
Ashita
Блин, рано обрадовался - тянет что-то не то, не верно считает... сначало было доавлено 10 товаров, и посчитало 10, затем добавил еще 1 - стало 15 и сколько не добавляй не удаляй 10-15 товаров по количеству
Re: Вывод суммы значений связанных записей
Добавлено: 26 сен 2023, 16:27
Ashita
Чуть позже добавлю скриншоты - может помогут более детально изучить проблему...
Re: Вывод суммы значений связанных записей
Добавлено: 26 сен 2023, 21:16
Ashita
Fait писал(а): 26 сен 2023, 06:42
Ashita писал(а): 26 сен 2023, 00:13
Добрый день, уже всю голову поломал...
Есть необходимость просчитывать суммы связанных записей, но никак не могу добавить нужное условие...
в итоге считает либо все записи основной сущности, либо - 0
Структура:
1. Сущность "Товары в накладной (42)" -- поле "количество (421)" - к ней делаю из сущности заказ Mysql запрос
2. Сущность "Заказ (28)" -- поле "количество товаров (438)" - делаю запрос к сущности "товары в накладной" (SUM([421])
В поле условие - при добавлении, например, id - выполняется подсчет 30 объектов из сущности "товары в накладной".
Как сделать чтобы условие фильтровало количество записей из списка указанного в заказе, сейчас их 10....
Сделайте поле 438 в сущности "Заказ" типом MySQL формула и вставьте это:
Код: Выделить всё
SELECT SUM(field_421) FROM app_entity_42 WHERE parent_item_id=[id]
А если вам нужно просто количество записей в товарах, то можете написать так:
Код: Выделить всё
SELECT COUNT(*) FROM app_entity_42 WHERE parent_item_id=[id]
Но обратите внимание, это работает только в том случае, если сущность "Товары в накладной" является вложенной.
Если эта сущность является связанной, то тогда формула будет следующей:
Код: Выделить всё
SELECT SUM(field_421) FROM app_entity_42 WHERE id in (SELECT id FROM app_related_items_28_42 WHERE entity_28_items_id=[id])
Прикрепляю скрины
Re: Вывод суммы значений связанных записей
Добавлено: 27 сен 2023, 07:40
Fait
Посмотрите в базе данных, возможно в таблице app_related_items_28_42 дублированные значения есть?
Это может быть из-за неправильной автоматизации или ещё чего-нибудь.
Каким образом у вас добавляются товары в Товары в накладной из заказа?
Re: Вывод суммы значений связанных записей
Добавлено: 27 сен 2023, 08:59
Ashita
Добавляются напрямую в накладную посредствам связанных записей, при добавлении выбирается тип движения и накладная расхода в которую добавляются товары
Re: Вывод суммы значений связанных записей
Добавлено: 27 сен 2023, 09:45
Ashita
Fait писал(а): 27 сен 2023, 07:40
Посмотрите в базе данных, возможно в таблице app_related_items_28_42 дублированные значения есть?
Это может быть из-за неправильной автоматизации или ещё чего-нибудь.
Каким образом у вас добавляются товары в Товары в накладной из заказа?
В базе данных