读书人

关于sQL的有关问题轻而易举拿分来

发布时间: 2012-03-30 17:32:09 作者: rapoo

关于sQL的问题,轻而易举拿分来!
帮我看看 为什么sum(TotalMil.TotalMil)统计了两次

SELECT GravyBoatInfo.CarBrandCode,sum(Amount) AS 总耗油量(升), sum(TotalMil.TotalMil) as 总公里数(Km),
sum(Amount)/sum(TotalMil.TotalMil)*100 AS 百公里油耗
FROM GravyBoatInfo, TotalMil
WHERE GravyBoatInfo.CarBrandCode=TotalMil.CarBrandCode
GROUP BY GravyBoatInfo.CarBrandCode,TotalMil.CarBrandCode

实际TotalMil表里只有一个记录,而GravyBoatInfo有两条记录 由于这种原因造成的 该怎么改动

[解决办法]
应该看是left join还是right join where条件里不能直接用“=”
[解决办法]
WHERE GravyBoatInfo.CarBrandCode=TotalMil.CarBrandCode
========================================================

两个字段相等是什么意思?如果做为连接查询的话是不是应该使用on关键字

FROM GravyBoatInfo left join TotalMil
on GravyBoatInfo.CarBrandCode=TotalMil.CarBrandCode
where GravyBoatInfo.CarBrandCode=某个特定的值
[解决办法]
CarBrandCode不唯一,直接=连接不行,用子查询吧。
[解决办法]
用max就行了.
SELECT GravyBoatInfo.CarBrandCode,sum(Amount) AS 总耗油量(升), max(TotalMil.TotalMil) as 总公里数(Km),
sum(Amount)/sum(TotalMil.TotalMil)*100 AS 百公里油耗
FROM GravyBoatInfo, TotalMil
WHERE GravyBoatInfo.CarBrandCode=TotalMil.CarBrandCode
GROUP BY GravyBoatInfo.CarBrandCode,TotalMil.CarBrandCode

读书人网 >C++ Builder

热点推荐