У меня есть таблица инвентаризации, где у меня есть записи, которые касаются движения запасов продуктов, проданных компанией. Движение имеет параметры «ВХОДЯЩИЙ», «ВЫХОДНОЙ», основанные на типе движения инвентаря. В нем также есть еще один столбец, в котором указывается тип «ВХОДЯЩИЙ» или «ВЫХОДНОЙ» ... например, входящий из-за прихода НОВОГО СТОКА, исходящий из-за ПОКУПКИ клиентом ... и т.д ...
Сейчас я делаю отчет, в котором хочу долгое время перечислять не проданные продукты. Поэтому я делаю следующий запрос ...
SELECT p.id as pid, product_name, DATEDIFF(NOW(), MAX(case when movement_type='OUTGOING' and movement_type_category='PURCHASED' then movement_on end)) AS unsold_days_since_last_sale, DATEDIFF(NOW(), MIN(case when movement_type='INCOMING' and movement_type_category='NEW_STOCK' and quantity>0 then movement_on end)) AS unsold_days_since_first_inventory_in, MAX(case when movement_type='INCOMING' and movement_type_category='NEW_STOCK' and quantity>0 then movement_on end) AS last_inv_in from inventory_movement im left join products p on im.product = p.id GROUP BY product having last_inv_in > 0 ORDER BY unsold_days_since_last_sale desc limit 100
И я получаю следующий вывод, как показано на рисунке.
Этот вывод почти правильный, но с одной проблемой. Если продукт никогда не продавался ни разу в прошлом, столбец, в котором я пытаюсь получить дни, отличные от CURRENT DAY и LAST SOLD DAY, вернет ноль. В этом случае мне нужно, чтобы разница ДНЕЙ между ТЕКУЩИМ ДНЕМ и ПЕРВЫМ ИНВЕНТАРЬОМ этого продукта была на месте, чтобы я мог заказать этот столбец по убыванию и получить вывод. Но я могу получить эти данные только как 2 разных столбца, а не как один столбец. Может кто-нибудь помочь мне написать запрос, чтобы получить его в виде объединенного столбца, чтобы я мог отсортировать эти данные, чтобы получить результат. Прикрепляю также свою таблицу движения инвентаря, чтобы показать, как выглядят данные ...
