问用SQL语句怎样写分组合计?

问用SQL语句怎样写分组合计? (用GROUP BY)
字段:mc bb je
a1 HKD 100
a1 HKD 200
a1 USD 150
a1 USD 250
a2 HKD 200
a2 USD 100
a3 HKD 300
a3 HKD 400

先对a分组,再分别合计b=h和b=u的数放在sumhk,sumus字段中

结果:客户名称 港币 美金
a1 300 400
a2 200 100
a3 700 0

我的写法:
Select sum1.mc as 客户名称,sum(sum1.hk) as 港币, sum(sum1.us) as 美金
from
(select mc,sum(je) as hk, 0 as us from data
where bb = 'HKD'
group by mc
UNION all
select mc,0 as hk, sum(je) as us from data
where bb = 'USD'
group by mc) as sum1
group by mc

提示:FORM错误
[664 byte] By [treehome-藤井树] at [2008-2-13]
# 1
问用SQL语句怎样写多分组合计?
treehome-藤井树 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 2
select 客户名称,
sum(case when bb='HKD' then je else 0 end) as 港币,
sum(case when bb='USD' then je else 0 end) as 美金
from data group by mc
j9988-j9988 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 3
select mc,sum(case left(bb,1) when 'h' then je else 0 end) as 港币 ,sum(case left(bb,1) when 'u' then je else 0 end) as 美金
from tab group by mc
supsuccess-火气不小 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 4
在第二个select 语句中你从表中提取三个字段,只有一个字段使用了聚合函数,其他两个字段没有,就应该把这两个字段共同放在GROUP BY 中。虽然其中有0 as hk,但SQL也把它当成一个正式的字段,而你的GROUP BY 中却只引用了一个字段。
是不是这样还得你试试,我也不大清楚。
还有你这样写,好象不能得出你希望的结果!
gejanry-gejanry at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 5
你的写法没有错!
supsuccess-火气不小 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 6
select 客户名称,
sum(case when bb='HKD' then je else 0 end) as 港币,
sum(case when bb='USD' then je else 0 end) as 美金
from data group by mc

这个写法有错的!!
请写一个对的!
treehome-藤井树 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 7
我是用VB做的软件,是否能用这种SQL语句?
treehome-藤井树 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 8
无高手吧!!
treehome-藤井树 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 9
少个MC
select mc 客户名称,
sum(case when bb='HKD' then je else 0 end) as 港币,
sum(case when bb='USD' then je else 0 end) as 美金
from date group by mc
j9988-j9988 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 10
treehome(藤井树),这种语句,少个MC你不会加上去?我不知道你平时怎么调试语句了!?
j9988-j9988 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 11
select mc as 客户名称,
sum(case when bb='HKD' then je else 0 end) as 港币,
sum(case when bb='USD' then je else 0 end) as 美金
from date group by mc
这样写也不能!!
treehome-藤井树 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 12
select mc as 客户名称,
sum(case when bb='HKD' then je else 0 end) as 港币,
sum(case when bb='USD' then je else 0 end) as 美金
from date group by mc
这样写也不能!!
treehome-藤井树 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 13
j9988的程序没问题啊,是不是 treehome(藤井树) 你那个from后面的具体表明忘了改成自己的table name了
# 14
把错误信息贴出来
j9988-j9988 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...
# 15
结果完全正确。
# 16
select mc as 客户名称,
sum(case when bb='HKD' then je else 0 end) as 港币,
sum(case when bb='USD' then je else 0 end) as 美金
from date group by mc
没问题阿!
xjboy-刀剑客 at 2007-10-24 > top of Msdn China Tech,MS-SQL Server,疑难问题...