注册 登录
编程论坛 SQL Server论坛

表与表之间的计算?

xianqjl 发布于 2010-02-02 20:53, 827 次点击
表1 EngineerIformation
字段 飞机机号,发动机号码,发动机序号,发动机规定寿命
表2 EngineerFloorTime
字段 飞机机号,发动机号码,发动机试车时间
表3 EngineerSkyTime
字段 飞机机号,发动机号码,飞行时间,滑行时间

计算 发动机剩余寿命=发动机规定寿命-发动机试车时间*0.2-飞行时间-滑行时间*0.2
select EngineerIformation.飞机机号,EngineerIformation.发动机号码,EngineerIformation.发动机规定寿命-EngineerFloorTime.发动机试车时间
-EngineerSkyTime.飞行时间-EngineerSkyTime.滑行时间*0.2 from EngineerIformation,EngineerFloorTime,EngineerSkyTime
where EngineerIformation.发动机号码=EngineerFloorTime.发动机号码 and EngineerIformation.发动机号码=EngineerSkyTime.发动机号码
group by EngineerIformation.飞机机号,EngineerIformation.发动机号码,EngineerIformation.发动机规定寿命,EngineerFloorTime.发动机试车时间
计算出来的数据不对,应该怎么写??
2 回复
#2
cnfarer2010-02-02 22:45

1.从你的语句中来看,用不着group by子句,因为查询中没用到统计;(group by 后面的项应该也是有问题的)
2.不知道你的三个表之间的关系,无法判断语句的正确性!
#3
happynight2010-02-03 11:24
发动机剩余寿命=发动机规定寿命-发动机试车时间*0.2-飞行时间-滑行时间*0.2

EngineerIformation.发动机规定寿命-EngineerFloorTime.发动机试车时间
-EngineerSkyTime.飞行时间-EngineerSkyTime.滑行时间*0.2

你自己忘了乘0.2了,你使用GROUP BY 是不是因为返回的数据有重复数据存在,如果是这样 你用DISTINCT让人更好理解
1