DB----函数查询

二个表的查询

使用join 二个表的结构,测试数据

表1:class
INSERT INTO `class` (`id`, `sid`, `name`) VALUES (1, 2, 'A');
INSERT INTO `class` (`id`, `sid`, `name`) VALUES (2, 3, 'B');
 
表2:school
INSERT INTO `school` (`id`, `sid`, `name`, `price`) VALUES (1, 2, 'tom', 5);
INSERT INTO `school` (`id`, `sid`, `name`, `price`) VALUES (2, 2, 'jack', 9);
INSERT INTO `school` (`id`, `sid`, `name`, `price`) VALUES (3, 3, 'rose', 4);
INSERT INTO `school` (`id`, `sid`, `name`, `price`) VALUES (4, 3, 'erice', 7);

查询

select SUM(price) from school where sid = 2
 
select a.*,SUM(b.price) from class as a JOIN school as b where a.sid = b.sid group by a.sid
 
使用别名:
select a.*,SUM(b.price) as sum_price from class as a JOIN school as b where a.sid = b.sid group by a.sid
 

一个表查询到的值作为条件查询同一个表的值
select a.*, (select school_name from table_school  where a.city_pid=school_id) as city_name 
from table_school as a where a.school_id = :school_id;

求和(函数判断)1: 查询同一个表同一字段不同类型

select a.education_sn,
    SUM(if(c.pay_type = 0,c.pay_fee,0)) as educ_fee,
    SUM(if(c.pay_type = 1,c.pay_fee,0)) as filing_fee,
    SUM(if(c.pay_type = 2,c.pay_fee,0)) as collect_fee,
    SUM(if(c.pay_type = 3,c.pay_fee,0)) as guidance_fee
from ah_education as a 
JOIN ah_pay as c on a.eid = c.eid where a.is_delete = 0 and a.eid = 107 GROUP by a.education_sn;

求和(原始)2: 查询同一个表同一字段不同类型

select a.education_sn,
	( select SUM(pay_fee) from ah_pay where pay_type = 0 and eid = 107 ) as educ_fee ,
	( select SUM(pay_fee) from ah_pay where pay_type = 1 and eid = 107 ) as filing_fee ,
	( select SUM(pay_fee) from ah_pay where pay_type = 2 and eid = 107 ) as collect_fee ,
	( select SUM(pay_fee) from ah_pay where pay_type = 3 and eid = 107 ) as guidance_fee 
from ah_education as a 
JOIN ah_pay as c on a.eid = c.eid where a.is_delete = 0 and a.eid = 107 GROUP by a.education_sn

统计

select 
		count(case when a.status = 0 then 0 end) as count0,
		count(case when a.status = 1 then 1 end) as count1,
		count(case when a.status = 2 then 2 end) as count2,
		count(case when a.status = 3 then 3 end) as count3
        from ah_reservation as a 
        where  a.submit_manager_id = 95 and a.is_delete = 0 
and DATE_SUB(CURDATE(), INTERVAL 6 DAY) <= date(from_unixtime(a.create_time)) 
GROUP by a.submit_manager_id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值