在mysql中计算运行余额选择查询和查看
我的名为material的简单表格包含以下列:在mysql中计算运行余额选择查询和查看,mysql,sql,select,view,Mysql,Sql,Select,View,我的名为material的简单表格包含以下列: mat_id mat_name stock_in stock_released date 1 alloy 30 0 feb13 2 steel 15 0 feb13 3 alloy
mat_id mat_name stock_in stock_released date
1 alloy 30 0 feb13
2 steel 15 0 feb13
3 alloy 0 3 feb14
我如何生成它或将其计算为:
mat_id mat_name stock_in stock_released Balance date
1 alloy 30 0 30 feb13
2 steel 15 0 15 feb13
3 alloy 0 3 15 feb14
这是我现有的代码,但余额有问题,因为它合计了所有内容,而忽略了物料名称:
SELECT
`material`.`mat_id`,
`material`.`mat_name`,
`material`.`stock_in`,
`material`.`stock_released`,
@Balance := @Balance + `material`.`stock_in` - `material`.`stock_released` AS `Balance`,
`material`.`date`
FROM `material`, (SELECT @Balance := 0) AS variableInit
WHERE mat_name = mat_name
ORDER BY `material`.`mat_id` ASC
它如何从中创建视图 使用此数据,获取流动余额的查询是:
SELECT m.`mat_id`, m.`mat_name`, m.`stock_in`, m.`stock_released`,
(select sum(stock_in) - sum(stock_released)
from material m2
where m2.mat_name = m.mat_name and
m2.mat_id <= m.mat_id
) as balance,
m.`date`
FROM `material` m
ORDER BY m.`mat_id` ASC;
这可以放在视图中。在MySQL中不能。它在from子句中既有变量又有子查询。回到上一个问题,看看我的答案。这可以放在一个视图中。当我的物料列中有我的供应商id,并且必须与供应商表中的同一供应商id匹配并显示供应商名称sir时,怎么样?然后您将在子查询中添加另一个条件,m2.supplier\u name=m.supplier\u name。是这样吗,先生?选择m.mat_id、m.mat_名称、s.sup_名称、m.stock_in、m.stock_released,选择sumstock_in-材料m2释放的sumstock_,供应商s2,其中m2.mat_名称=m.mat_名称和m2.mat_id