关于mysql 语句统计问题

数据库mysql有张统计表 ,目的是想统计出该表不同用户的 a2列的总和,当然还有些条件,如果a8 不是null 那么要统计的是a6列的值,而不是a2列的值

表A

a1 a2 a3 a4 a5 a6 a7 a8 (字段列)

张三 100 200 1 1 50 2 1

李四 50 100 1 1 0 2 null

王五 250 100 1 1 100 2 1

张三 510 200 1 1 0 2 null

王五 200 50 1 1 0 2 null

......

select sum(a2) from A group by a1 //但是这样的话统计出来的结果是错的
我想要的是如果a8不为空,那么统计的就是 sum(a8)列,而不是a2
如: 张三总和为=50(a8列)+510(a2列,因为a8列是null,那么就取a2列)=560
请问如何写mysql 语句

[code="sql"]
select pid,sum(case when a8<>null then a8 else a2 end) from oa_dept group by pid;
[/code]

经过测试,没问题.实现了LZ所要的功能.

mysql里有
[quote]IF(expr1,expr2,expr3)
如果expr1是TRUE(expr1<>;0且expr1<>;NULL),那么IF()返回expr2,否则它返回expr3。IF()返回一个数字或字符串值[/quote]

看看能不能sum这个表达式
没有mysql环境,你试试吧