2014-02-13 3 views
0

Моя простая таблица с именем ass_material с этой колонки:Рассчитать работает баланс в MySQL с точки зрения

mat_id mat_name supplier request stock_received date 
1   alloy  test  30   0    feb13 
2   alloy  test  30   10   feb14 
3   alloy  test  30   20   feb14 

Как я могу генерировать его или рассчитать его как: Он также будет генерировать «полный» статус, когда stock_balance и запрос Матчи.

mat_id mat_name supplier request stock_received Stock_balance date status 
    1   alloy  test  30   0     0  feb13 
    2   alloy  test  30   10    10  feb14 
    3   alloy  test  30   20    30  feb14 complete 

вот мой код ссылки из моего другого вида: , как я могу настроить это в мой желаемый результат выше?

SELECT m.`mat_id`, m.`mat_name`, m.`request`, m.`stock_receieved`, 
     (select sum(stock_received) - sum(stock_received) 
     from material m2 
     where m2.mat_name = m.mat_name and 
       m2.mat_id <= m.mat_id 
     ) as Stock_balance, 
     m.`date`, 
     s.`sup_name` 
FROM `material` m 
LEFT JOIN `supplier` s on s.sup_id = m.supplier_id 
ORDER BY m.`mat_id` ASC; 
+0

Как вы решить для фондового баланса? –

+0

, когда запасы будут получены, они будут суммировать предыдущие акции, поступившие в фондовый баланс. – user3117337

ответ

0

Если stock_balance только сумма stock_received, а затем использовать это в подзапросе:

SELECT m.`mat_id`, m.`mat_name`, m.`request`, m.`stock_receieved`, 
     (select sum(stock_received) 
     from material m2 
     where m2.mat_name = m.mat_name and 
       m2.mat_id <= m.mat_id 
     ) as Stock_balance, 
     (case when (select sum(stock_received) 
        from material m2 
        where m2.mat_name = m.mat_name and 
         m2.mat_id <= m.mat_id 
       ) = request 
      then 'Complete' 
      else 'Incomplete' 
     end) as status, 
     m.`date`, 
     s.`sup_name` 
FROM `material` m LEFT JOIN 
    `supplier` s 
    on s.sup_id = m.supplier_id 
ORDER BY m.`mat_id` ASC; 
+0

спасибо, сэр .. но как я могу добавить «полный» как статус, когда share_balance будет равен количеству запросов? – user3117337

+0

@ пользователь3117337. , , В представлении, совместимом с представлением, вы должны повторить подзапрос, как указано выше. –

+0

Спасибо, сэр, он работает. Могу ли я попросить еще один? .. Как я могу добавить другой случай, когда request = 0 then status = ''? – user3117337

Смежные вопросы