有以下数据表
Suppliers(sid:integer, sname:string, address:string)
Parts(pid:integer, pname:string, color:string)
Catalog(sid:integer, pid:integer, cost:real)
说明: 
数据表结构:
表名(字段:类型)
Catalog 数据表记录不同suppliers提供不同的Parts的价格/************************** 本帖重点 **************************/
问题1: 找出仅供应红色零件的供应商的sids;
select c.sid
from parts as p, catalog as c
where p.pid=c.pid
group by c.sid
having count(*)=sum(case when c.color='red' then 1 else 0 end);
这条语句报错 : ERROR 1054 (42S22): Unknown column 'c.color' in 'having clause'
如果我将c.color改为color 则可以得出正确结果.
select c.sid
from parts as p, catalog as c
where p.pid=c.pid
group by c.sid
having count(*)=sum(case when color='red' then 1 else 0 end);请问各位大神
    1.我这条语句写错了?可否贴出您的语句?
    2.是不是case when不支持别名啊?这是一道笔试题,我做完出来之后才知道自己做错了,谢谢大家的指点.case when别名case when别名