189 8069 5689

mysql怎么计算合计 mysql怎么求和

mysql统计每类图书的价格总和怎么算

selecti.uid,sum(ifnull(deposit,0)+ifnull(ddeposit,0)+ifnull(money,0))asallmoney

内黄网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联公司于2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司

frompw_memberinfoileftjoinpw_membersmonm.uid=i.uidleftjoinpw_memberdatadoni.uid=d.uid

whereifnull(deposit,0)+ifnull(ddeposit,0)+ifnull(money,0)2000;

mysql 不同两张表求总和

有三个办法(我的连接直接写的都是id,如果不用这个连接那么就自己换掉)

(1)union all(两张表直接union all),这个不会和union一样去掉重复的(万一有一个id一样,的学生,成绩也一样,那不是直接少算一科,当然如果你的id是科目id,大一大二不会重复,那就当我没说),而是直接全部排列出来,然后两张表变成一张表,直接sum就行了。

你说的并集,举例就是大二有人转系,有人走,有人来,那么有人有大一成绩但是没有大二成绩,有人有大二成绩没有大一成绩,可是这两者都要显示出来,是这个意思吧。

只是union all以后,外面要套一层select * from,不然如果把这个放在子查询那么就会报错,毕竟这是两张表,不是一张。

(2)计算两遍一个左连接,一个右连接,得到的结果union(不是union all啊),这样去掉重复的就OK了,别忘了没有空集补0,我的isnull写的应该不规范,而且需要测试测试,毕竟也有不需要写的可能。

举例,select a.id,a.student_id,a.score+isnull(b.score,0) aa from a left join b on a.id=b.id

union

select b.id,b.student_id,isnull(a.score,0)+b.score aa from a right join b on a.id=b.id

(3)办法差不多,不过这个是先求出只有大一成绩的,再求出只有大二成绩的,然后再求出两个成绩都有的。

select a.id,a.student_id,a.score from a where a.id not in (select id from b)

union

select b.id,b.student_id,b.score from b where b.id not in (select id from a)

union

select a.id,a.student_id a.score+b.score score from a,b where a.id=b.id

至于full join的写法,mysql我忘了有没有了,如果有更好,没有的话,那么就不那么好办了。

mysql 查询结果求和

1、创建三张测试表,

create table pw_memberinfo(uid int, name varchar(20));

create table pw_members(companyid int, uid int);

create table pw_memberdata(uid int, deposit int, ddeposit int, money int);

2、三张表,分别插入测试数据,

insert into pw_members values(1, 1);

insert into pw_members values(1, 2);

insert into pw_members values(1, 3);

insert into pw_memberinfo values(1, 'name_1');

insert into pw_memberinfo values(2, 'name_2');

insert into pw_memberinfo values(3, 'name_3');

insert into pw_memberdata values(1,30,50,150);

insert into pw_memberdata values(2,77,50,12);

insert into pw_memberdata values(3,44,50,82);

3、查看pw_memberdata表中的记录,select * from pw_memberdata t,

4、编写sql语句,

select * from (SELECT i.uid, sum(deposit+ddeposit+money) as allmoney

FROM pw_memberinfo i

LEFT JOIN pw_members m ON m.uid=i.uid

LEFT JOIN pw_memberdata d ON i.uid=d.uid

group by i.uid

) t where allmoney200


网站标题:mysql怎么计算合计 mysql怎么求和
文章来源:http://jkwzsj.com/article/doeidpo.html

其他资讯