繁体   English   中英

mysql如何在计算中加入查询?

[英]How to join query with calculate in mysql?

mysql如何在计算中加入查询?

fab_in表 在此处输入图片说明

fab_out表

在此处输入图片说明

我的查询如下

  SELECT fabric_in.fabric_id, fabric_in.fabric_date, fabric_in.fabric_order_qty, fabric_in.fabric_rejected_qty, fabric_in.fabric_rejected_reason, fabric_in.fabric_total_qty, fabric_in.fabric_company_name, fabric_out.fabric_out_qty 
    FROM fabric_out 
    RIGHT JOIN fabric_in 
ON fabric_out.fabric_id=fabric_in.fabric_id

结果查询 在此处输入图片说明

但我想与fabric_id求和,您能帮上什么忙吗 在此处输入图片说明

SELECT 
    fabric_in.fabric_id, 
    fabric_in.fabric_date, 
    fabric_in.fabric_order_qty, 
    fabric_in.fabric_rejected_qty, 
    fabric_in.fabric_rejected_reason, 
    fabric_in.fabric_total_qty, 
    fabric_in.fabric_company_name, 
    SUM(fabric_out.fabric_out_qty) AS fabric_out_qty
FROM fabric_out 
RIGHT JOIN fabric_in 
ON fabric_out.fabric_id=fabric_in.fabric_id
GROUP BY fabric_in.fabric_id

您必须使用MySQL的聚合函数:

SELECT MAX(fabric_in.fabric_id) as fabric_id, 
       MAX(fabric_in.fabric_date) as fabric_date, 
       MAX(fabric_in.fabric_order_qty) as fabric_order_qty, 
       MAX(fabric_in.fabric_rejected_qty) as fabric_rejected_qty, 
       MAX(fabric_in.fabric_rejected_reason) as fabric_rejected_reason, 
       MAX(fabric_in.fabric_total_qty) as fabric_total_qty, 
       MAX(fabric_in.fabric_company_name) as fabric_company_name, 
       SUM(fabric_out.fabric_out_qty) AS fabric_out_qty
    FROM fabric_out 
    RIGHT JOIN fabric_in 
    ON fabric_out.fabric_id=fabric_in.fabric_id
    GROUP BY fabric_in.fabric_id

这应该为您工作,未经测试。

作为新版本,您需要将所有列添加为分组依据或加重功能。 因此您可以通过这种方式使用查询。

    SELECT fabric_in.fabric_id,fabric_in.fabric_date, 
    fabric_in.fabric_order_qty, fabric_in.fabric_rejected_qty,
    fabric_in.fabric_rejected_reason, fabric_in.fabric_total_qty,
    fabric_in.fabric_company_name,a.fabric_out_qty 
        FROM fabric_in 
        RIGHT JOIN  (select fabric_id,sum(fabric_out_qty) as total from 
    fabric_out group by fabric_id ) as a
    ON a.fabric_id=fabric_in.fabric_id

尝试这个...

SELECT 
    fabric_in.fabric_id,
    fabric_in.fabric_date, 
    fabric_in.fabric_order_qty, 
    fabric_in.fabric_rejected_qty,
    fabric_in.fabric_total_qty,
    fabric_in.fabric_company_name,
    a.fabric_out_qty 
FROM fabric_in RIGHT JOIN  
    (select sum(fabric_out_qty) as out_total FROM fabric_out group by fabric_id ) as a ON a.fabric_id=fabric_in.fabric_id;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM