首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

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

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

关于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

热点排行