sql 两表联查 其中一张表求和进行函数运行 分组

1老规矩,上链接,自己做这个需求查到的博客

https://blog.csdn.net/liitdar/article/details/80817957   ON和where的区别

 

当我们使用连接操作,关联两张或多张表来返回记录时,数据库都会生成一张临时表,最后将这张临时表返回给用户。

以 LEFT JOIN 为例:在使用 LEFT JOIN 时,ON 和 WHERE 过滤条件的区别如下:

    ON 条件是在生成临时表时使用的条件,它不管 ON 中的条件是否为真,都会返回左边表中的记录;
    WHERE 条件是在临时表已经生成后,对临时表进行的过滤条件。因为此时已经没有 LEFT JOIN 的含义(必须返回左侧表的记录)了,所以如果 WHERE 条件不为真的记录就会被过滤掉。

//A表记录的是物资基础信息
//B表记录的是某一种物资不同批次的库存量
//需要查询的是某一种类型物资属于某部门的当前的库存量

SELECT A.code,A.name,A.specification_type,sum( case when B.mat_num = A.code then B.stock_num else 0 end ) 
FROM material_info A 
LEFT JOIN ws_mat_stock B on A.useable =1 
WHERE A.type='0' AND  B.plan_office_id = "7cd1c2fd97f44c1ca533c798cf85a95b" 
GROUP BY A.code,A.name,A.specification_type


 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值