佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1365|回复: 3

SQL 的问题

[复制链接]
发表于 12-6-2007 02:35 PM | 显示全部楼层 |阅读模式
麻烦高手帮帮忙,
问题:
car_type(carTypeID, carTypeName)
car(carID, carTypeID)
repair(repairID, carID, cost, date)
我尝试写的SQLcoding,但是得不到要的答案
select
c.carTypeID 'car type',
count(*) 'Total car',
select sum(cost) from repair,
sum(r.totalCost)/count(*)
from car C left join repair r on c.carID=r.carID
group by CT.carTypeID

正常的output应该是这样的:

car type                 total        cost         average
nissan                20        200        10
honda                5        0        0
kia                7        70        10

麻烦各位高手了!非常感谢
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 12-6-2007 02:38 PM | 显示全部楼层
对不起,写漏了这个:

total : 汽车的总数量
cost : 本月的总修理费(根据车子的种类)
average : 每辆汽车平均每个月的修理费
回复

使用道具 举报

发表于 13-6-2007 01:13 PM | 显示全部楼层

回复 #2 see199 的帖子

楼主没说明用什么database. 我就当做是 MSSQL.

select
c.carTypeID 'car type',
count(*) 'Total car',
select sum(cost) from repair, ---<<Error
sum(r.totalCost)/count(*)
from car C left join repair r on c.carID=r.carID
group by CT.carTypeID

参考以下example:

create table car_type(carTypeID int, carTypeName varchar(10));
create table car(carID int , carTypeID int );
create table repair(repairID int, carID int, cost int, date datetime);

go

insert into car_type (carTypeID  , carTypeName )
values (1,'nissan');

insert into car_type (carTypeID  , carTypeName )
values (2,'honda');

insert into car_type (carTypeID  , carTypeName )
values (3,'kia');

insert into car_type (carTypeID  , carTypeName )
values (4,'proton');

insert car(carID , carTypeID ) values (1,1);
insert car(carID , carTypeID ) values (2,1);
insert car(carID , carTypeID ) values (3,1);
insert car(carID , carTypeID ) values (4,2);
insert car(carID , carTypeID ) values (5,2);
insert car(carID , carTypeID ) values (6,2);
insert car(carID , carTypeID ) values (7,2);
insert car(carID , carTypeID ) values (8,3);
insert car(carID , carTypeID ) values (9,3);


insert repair(repairID, carID, cost, date)
values (1,1,10,getdate());
insert repair(repairID, carID, cost, date)
values (2,2,20,getdate());
insert repair(repairID, carID, cost, date)
values (3,3,30,getdate());
insert repair(repairID, carID, cost, date)
values (4,4,10,getdate());
insert repair(repairID, carID, cost, date)
values (5,5,20,getdate());
insert repair(repairID, carID, cost, date)
values (6,6,100,getdate());
insert repair(repairID, carID, cost, date)
values (7,7,110,getdate());
insert repair(repairID, carID, cost, date)
values (8,8,20,getdate());
insert repair(repairID, carID, cost, date)
values (9,9,40,getdate());

go

select
ct.carTypeName 'car type',
count(c.carID) 'Total car',
sum(isnull(cost,0)) as cost,
avg(isnull(r.Cost,0)) as average
from car_type ct left join car c
on ct.carTypeId=c.carTypeID
left join repair r on c.carID=r.carID
group by ct.carTypeName;


result:
car type   Total car   cost        average     
---------- ----------- ----------- -----------
honda      4           240         60
kia        2           60          30
nissan     3           60          20
proton     0           0           0


参考 MS SQL 的 Books Online help file 吧
回复

使用道具 举报

 楼主| 发表于 13-6-2007 05:02 PM | 显示全部楼层
哦!很感谢!可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT


本周最热论坛帖子本周最热论坛帖子

ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 27-9-2025 02:46 AM , Processed in 0.107310 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表