У меня есть структура базы данных, как показано на рисунке (это упрощенно) Вычислить в нескольких, где положение MySQL
так что теперь я хочу, чтобы вычислить продукцию во всех акций, чтобы результат выглядел как (это при условии, что магазин таблица имеет две записи store1 и store2):
, если это не представляется возможным этот формат является приемлемым слишком
Основная проблема заключается в том, что я не могу понять, как мне рассчитать текущий запас для каждого магазина.
the curent stock for each stock = sum of all productin this stock
- sum of all productout this stock
+ sum of all producttransfer with transfertype=0 in this stock
- sum of all producttransfer with transfertype=1 in this stock
так, как я должен вычислить его для каждого магазина, когда магазин номер не зафиксирован
Это действительно необычный дизайн для системы запаса. Можете ли вы изменить дизайн (по крайней мере, немного)? Если я правильно ее понимаю, вы добавили/получили таблицу для каждого типа изменений запасов, где вы могли бы и должны просто добавить столбец с типом (вы все равно можете иметь дополнительные таблицы для получения дополнительной конкретной информации, хотя это и не обязательно) , и, может быть, колонку для магазина тоже, но я думаю, что это не соответствовало бы вашей дизайнерской идее. Ваша модель похожа на магазин, добавленный к действительно универсальной модели действий, которая не должна была быть магазином. – Solarflare
В противном случае вы можете присоединиться ко всем вашим таблицам действий, группе через хранилище, а затем использовать 'sum (case, когда productin.id имеет значение null, а затем actiondetails.Quantity else 0 end) + sum (case when productout.id then -actiondetails.Quantity else 0 end) + ... 'или что-то подобное. – Solarflare