select top 10 a.name,SUM(isnull(b.sl,0)) FROM a left JOIN b ON a.id = b.topid where isbull(b.lx,'出') = '出' group by a.name order by sum(b.sl);
select top 10 a.name,SUM(case b.lx when 'I' then 0 else isnull(b.sl,0) end ) FROM a left JOIN b ON a.id = b.topid group by a.name order by sum(b.sl)
name ---------- ----------- ?上衣 0 黑上衣 0 ?西? 5
谢谢大家,我不知道你们的答案是否正确我没有试。在百度有人给出了正确的结果 select [name],sum(isnull([sl],0)) from a left join (select * from b where lx='出') c on a.id=c.topid group by [name] order by sum(isnull([sl],0)) 其中我只用到了(select * from b where lx='出')就解决了。 再次谢谢大家。
红西装 5件
---------- -----------
?上衣 0
黑上衣 0
?西? 5
select [name],sum(isnull([sl],0)) from a left join (select * from b where lx='出') c on a.id=c.topid
group by [name] order by sum(isnull([sl],0))
其中我只用到了(select * from b where lx='出')就解决了。
再次谢谢大家。