mysql - 获取Mysql数量

标签 mysql

查询 1(第一张表 - 库存)

select sum(s.liquid_quantity) as 'stock in total' from stockin_detail s 
left join reagent r on r.id = s.reagent_id group by r.name

查询 2(第二个表 - 缺货)

select sum(t.consumption)as 'stock out total' ,r.name from stock_out s 
inner join test_consumption t on s.consumption_id = t.id 
inner join reagent r on r.id = t.reagent_id group by r.name 

查询 1

stock in  |r.name     
100       |Reagent2                 
100       |Reagent3

查询 2

stock out  |r.name     
40         |Reagent2                 
20         |Reagent3

我尝试这样做,但它不会减去,因为每个嵌套的 select 语句由于分组依据而返回“多于一列”错误消息。 我还尝试删除该组,但最终梳理了两只不同的股票,然后减去了。

SELECT QUERY1 – QUERY2 as ‘current stocks’

预期结果

current stock|r.name  
60           |Reagent2                 
80           |Reagent3

最佳答案

为什么不将两个查询转储到内联 View 中,然后将它们连接在一起?

这样的事情应该能让你继续下去。内联 View 别名“i”是库存,内联 View 别名“o”是库存:

select i.name,i.in-ifnull(o.out,0) as 'current stock'
from
 (
  select sum(s.liquid_quantity) as in,r.name 
  from stockin_detail s 
  left join reagent r on r.id = s.reagent_id 
  group by r.name
 ) i
 left outer join
 (
  select sum(t.consumption)as 'out' ,r.name from stock_out s 
  inner join test_consumption t on s.consumption_id = t.id 
  inner join reagent r on r.id = t.reagent_id 
  group by r.name
 ) o on i.name = o.name;

关于mysql - 获取Mysql数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28218612/

相关文章:

php - order by rand() 给大帖子带来麻烦

mysql - 我可以限制 mysql 表只包含 n 行吗?

php - 减少不同时间间隔的 mysql 计数查询次数

php - 我如何自动更新连接表并从连接表访问数据?

mysql 加入条件行为

php - 如何使用 PHP 和 Smarty 同时获取数据并将其显示在浏览器中?

mysql - MySQL中选定的日期间隔

MySQL:将结果设置为逗号后两位数

python - 使用 Boto3 和 IAM 角色的 Python 中的 RDS 连接

php - 使用 mysql 和 PHP 从本地主机连接到远程数据库