首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

[求]SQL话语(想了很久都没想到)

2012-09-12 
[求]SQL语句(想了很久都没想到)现在有三个表province表(id,provinceName)client表(id,clientname,province

[求]SQL语句(想了很久都没想到)
现在有三个表
province表(id,provinceName)
client表(id,clientname,provinceid)
order表(id,clientid,level,price)

其中,level字段只存a,b,c(理解为代号吧)

现在看看能用用一句sql语句,或者用一个存储过程,能得出下面的查询结果.
____________________________________________
| 省份 | 客户数 | oa总额 | ob总额 | oc总额 |
--------------------------------------------

意思就是该省份共有客户数多少人,该省份的oa,ob,oc总额各是多少..

比如:
____________________________________________
| 省份 | 客户数 | oa总额 | ob总额 | oc总额 |
--------------------------------------------
|广东省| 20 | 3000 | 3229 | 339 |
--------------------------------------------
就是广东省有客户数20人,oa总额3000元,ob总额3229元,oc总额339元.

求好心人士帮帮忙..

[解决办法]
未测试:

SQL code
select     provinceName as '省份',     count(clientname) as '客户数',     sum(if(level='a', 1, 0)) as 'oa总额',     sum(if(level='b', 1, 0)) as 'ob总额',     sum(if(level='c', 1, 0)) as 'oc总额'from     order     left join    client    on order.clientid = client.id    left join    province    on client.privinceid = province.idgroup by provinceName
[解决办法]
http://blog.csdn.net/acmain_chm/article/details/4283943
MySQL交叉表
在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?96198现整理解法如下:数据样本: create table tx( id int primary key, c1 c...

热点排行