日期:2014-05-17  浏览次数:20948 次

在线等--请教大家一个简单的SQL查询
表1:(ID为自动编号)

ID     NAME  

1       电脑
2       黄金
3       白金
4       钻石


表2:(ID为自动编号)


ID   NAME2     PRICE

1       电脑       90
2       电脑       10
3       黄金       50
4       白金       40
5       白金       20
6       白金       10


我想要得到的结果:

黄金:50

白金:70

钻石:0

如果表2为空则结果为:


电脑:0
黄金:0
白金:0
钻石:0


注:

1,PRICE   合计大于   100则不在结果中显示,例如在结果中就没有“电脑”.


请教符合上述要求的SQL语句应如何写???谢谢

------解决方案--------------------
楼主什么数据库?如果是oracle,有一个函数可以将字段为空时按0统计,access就不知道有没有了,不过以下的土办法可以满足你的要求:

select a.name,sum(b.price) from tb1 a left join tb2 b on (a.name=b.name2) group by a.name having sum(b.price) <100 union select name,0 from tb1 where name not in (select name2 from t2)