Я довольно долго ломал голову над тем, как заставить это работать, и, поскольку это так конкретно c Я не могу найти ответ где-нибудь еще в StackOverflow. Будем благодарны за любые ответы или предложения.
Я работаю над подготовкой отчета, который проинформирует пользователя об управлении запасами и потреблении. Рассчитать это с помощью значений current_stock и daily_stock_consump очень просто ... Но когда мы добавляем поставки, поступающие в процесс, все становится очень сложным. Получение MYSQL возврата в первый день, когда каждая акция достигает 0, оставляет меня пустым.
Например, предположим, что мы продаем фрукты, и у нас есть три стола fruit, fruit_sold и fruit_orders fruit
|---------------------|------------------|
| id | fruit |
|---------------------|------------------|
| 1 | Apples |
|---------------------|------------------|
| 2 | Oranges |
|---------------------|------------------|
| 3 | pears |
|---------------------|------------------|
fruit_sold
|---------------------|------------------|------------------|------------------|
| id | fruit_id | sold_per_day | day_sold |
|---------------------|------------------|------------------|------------------|
| 1 | 1 | 101 | 1585695600 |
|---------------------|------------------|------------------|------------------|
| 2 | 2 | 445 | 1585695600 |
|---------------------|------------------|------------------|------------------|
| 3 | 3 | 214 | 1585782000 |
|---------------------|------------------|------------------|------------------|
| 4 | 1 | 512 | 1585782000 |
|---------------------|------------------|------------------|------------------|
fruit_orders
|---------------------|------------------|------------------|
| id | arriving | fruit_id |
|---------------------|------------------|------------------|
| 1 | 1592607600 | 1 |
|---------------------|------------------|------------------|
| 2 | 1586905200 | 3 |
|---------------------|------------------|------------------|
| 3 | 1590534000 | 2 |
|---------------------|------------------|------------------|
| 4 | 1588287600 | 3 |
|---------------------|------------------|------------------|
| 5 | 1593126000 | 1 |
|---------------------|------------------|------------------|
| 6 | 1592607600 | 2 |
|---------------------|------------------|------------------|
Пока у меня есть
SELECT SUM(fruit_sold.sold_per_day) / 2 AS consumption, fruit.fruit
FROM fruit_sold
LEFT JOIN fruit
ON fruit_sold.fruit_id = fruit.id
GROUP BY fruit_sold.fruit_id
Как бы я также вернул число дней до истечения запаса (с учетом поступающих заказов и дат их прибытия) для каждого фрукта?
Мы хотим вернуть следующее:
|---------------------|------------------|------------------|------------------|
| id | fruit | consumption | days_until_gone | |
|---------------------|------------------|------------------|------------------|
| 1 | apples | 306.5 | 2 |
|---------------------|------------------|------------------|------------------|
| 2 | oranges | 222.5 | 16 |
|---------------------|------------------|------------------|------------------|
| 3 | pears | 107 | 3 |
|---------------------|------------------|------------------|------------------|