Как я могу заказать по дате из трех таблиц для указания c название продукта - PullRequest
0 голосов
/ 02 мая 2020

У меня три таблицы, products,loadings,stock Я хочу выбрать sum(qty) и date текущего месяца в указанном c продукте из всей таблицы и заказать по дате.

это мой mysql query

SELECT  products.id, 
        products.name,
        (select ifnull(sum(stocks.qty),0) from stocks where stocks.pid=products.id and 
        DATE(stocks.Indate)=CURDATE()) as total_stock,

       (select ifnull(sum(loadings.qty),0) from loadings where loadings.pid=products.id and                                      DATE(loadings.Outdate)=CURDATE() ) as 
        total_out,

        ((select ifnull(sum(stocks.qty),0) from stocks where stocks.pid=products.id and 
        DATE(stocks.Indate) < CURDATE())-(select ifnull(sum(loadings.qty),0) from loadings where 
        loadings.pid=products.id and DATE(loadings.Outdate) < CURDATE())) as opening_balance,

        ((products.open_stock)+(select ifnull(sum(stocks.qty),0) from stocks where 
           stocks.pid=products.id and 
        DATE(stocks.Indate) <= CURDATE())-(select 
        ifnull(sum(loadings.qty),0) from loadings where loadings.pid=products.id and 
         DATE(loadings.Outdate)     <=CURDATE())) as closing_balance

        from products

Так что я хочу сделать заказ по дате от loadings.Outdate и stocks.Indate

Я ожидаю, что это будет

date            product name   total_In     total_out  Open_balance Closed_balance
01/5/2020        items1         30             0          20          50
03/5/2020        items1          0             4           10          6
 .

 .and so on 

закрытый баланс = Open_balance + total_in- total_out

open_balance - предыдущая дата закрытого _balance, пример: закрытый баланс вчерашнего дня равен 30, тогда это будет открытый баланс сегодня

Пример Пример данных В моей таблице Таблица загрузки

Outdate               pid      Qty
 01/05/2020            1       20
 01/05/2020            2       30
 02/05/2020            1       10

Таблица запасов

    Indate             pid    Qty
  01/05/2020            1      20
  01/04/2020            2      5
  03/05/2020            1      10

Так что, может быть, я хочу выбрать конкретные данные c pid=1

Мне нужно помогите, заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...