求SQL语句,帮忙看看错在什么地方?
AA表: 
 DEP,ID,SPEC,SAL_NUM 
 部门,货号,规格,销售数量 
 100,A001,99-00,122 
 100,A001,98-00,205 
 200,A012,11-00,64 
 200,A013,99-00,870 
 。。。。。。。。。。。 
 BB表: 
 DEP,ID,SPEC,KC_NUM 
 部门,货号,规格,库存数量 
 100,A001,99-00,500 
 100,A001,98-00,1000 
 200,A012,11-00,200 
 200,A013,99-00,2000 
 。。。。。。。。。。。。   
 货号-规格   两者定位唯一值 
 求1: 
 货号,规格,部门1销售数量,部门2销售数量   .。。。。。。   
 我用以下语句可以实现: 
 select   a.ID,a.SPEC, 
 sum(case   a.dep   when    '100 '   then   a.SAL_NUM)   as   部门100销售 
 sum(case   a.dep   when    '200 '   then   a.SAL_NUM)   as   部门200销售 
 。。。。。。。。 
 from   AA   a 
 group   by   a.ID,a.SPEC 
 order   by   a.ID,a.SPEC        
 求2: 
 货号,规格,部门1销售数量,部门1库存数量,部门2销售数量,部门2库存数量.。。。。。。   
 我用以下语句得到的数据是不对的,不知道错在什么地方,望指点! 
 select   a.ID,a.SPEC, 
 sum(case   a.dep   when    '100 '   then   a.SAL_NUM)   as   部门100销售 
 sum(case   b.dep   when    '100 '   then   b.KC_NUM)   as   部门100库存 
 sum(case   a.dep   when    '200 '   then   a.SAL_NUM)   as   部门200销售 
 sum(case   b.dep   when    '200 '   then   b.SAL_NUM)   as   部门200库存 
 。。。。。。。。 
 from   AA   a,BB   b 
 where   a.ID=b.ID   and   a.SPEC=b.SPEC 
 group   by   a.ID,a.SPEC    
 order   by   a.ID,a.SPEC
------解决方案--------------------case .. when ... then ... 
 when ... then .. 
 else 
 ... 
 end ---end丢了
------解决方案--------------------select a.ID,a.SPEC, 
 sum(case a.dep when  '100 ' then a.SAL_NUM end) as 部门100销售 
 sum(case a.dep when  '200 ' then a.SAL_NUM end) as 部门200销售 
 。。。。。。。。 
 from AA a 
 group by a.ID,a.SPEC 
 order by a.ID,a.SPEC       
 case  后要又 end 
------解决方案--------------------select a.[ID],a.SPEC, 
 sum(case a.dep when  '100 ' then a.sal_num end) as 部门100销售, 
 sum(case b.dep when  '100 ' then b.kc_num end) as 部门100库存, 
 sum(case a.dep when  '200 ' then a.sal_num end) as 部门200销售, 
 sum(case b.dep when  '200 ' then b.kc_num end) as 部门200库存 from AA a,BB b 
 where a.[ID]=b.[ID] and a.SPEC=b.SPEC 
 group by a.[ID],a.SPEC  
 order by a.[ID],a.SPEC 
 列名错了
------解决方案--------------------应该没错。提示什么错误?
------解决方案--------------------不对?怎么个不对法?把数据列出来。还有一点,我不明白你为什么这么写,你自己说已经用 'id ', 'spec '做主键或者说确定唯一值,然后再用这两个列分组,不是多此一举吗?你的第一个语句直接写成  
 select a.ID,a.SPEC, 
 (case a.dep when  '100 ' then a.SAL_NUM) as 部门100销售 
 (case a.dep when  '200 ' then a.SAL_NUM) as 部门200销售 
 ........ 
 from AA a 
 order by a.ID,a.SPEC  
 不就行了吗? 
 你写的语句我试过了,结果是正确的。也许别的地方(比如你省略的地方)有问题?
------解决方案--------------------select a.ID,a.SPEC, 
 sum(case a.dep when  '100 ' then a.SAL_NUM end) as 部门100销售, 
 sum(case b.dep when  '100 ' then b.KC_NUM end) as 部门100库存, 
 sum(case a.dep when  '200 ' then a.SAL_NUM end ) as 部门200销售, 
 sum(case b.dep when  '200 ' then b.SAL_NUM end ) as 部门200库存, 
 。。。。。。。。 
 from AA a inner join BB b on  a.ID=b.ID and a.SPEC=b.SPEC 
 group by a.ID,a.SPEC