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

[求]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.id
group 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...
[求]SQL话语(想了很久都没想到)

相关文章:

你感兴趣的文章:

标签云: