Обсуждение: Can anybody help me with SQL?

Поиск
Список
Период
Сортировка

Can anybody help me with SQL?

От
"Richard Lockwood"
Дата:
Hi

I was wondering if anyone could help me with the following SQL questions:


1.Which car was rented for the longest single period? (regno)

SELECT regno, MAX(datein-dateout) "Longest Single Period" FROM rental group
by regno;

Although this works - it shows ALL the regno's longest periods - how would i
just display the regno?

2. Which car was rented for the longest total period? (regno)
3. Which customers (if any) were born on Monday? (surname)

For this question i thought that this would work:

SELECT * FROM cust WHERE TO_CHAR(cd_o_b,'DAY') = 'MONDAY'

But it never works - it says 'no rows selected'
although there are 2 cusotmers born on Monday
However if you put wednesday instead of monday or any other day it seems to
work correctly
Anyone know why this is?

4. Which customer averaged the most miles/day? (surname)(single rental)
5. Which customer averaged the least miles/day? (surname)(single rental)
6. Which customer had to wait for the previous renter to return the car?
(surname)
6. What % of rentals are for one day only?
7. Can cars be rented on a Sunday? (i.e. are there any?) (regno)
8. List the total amount of money paid to each garage during this period.
9. What is the average miles driven per day?

The rest of the questions just baffle me as i cannot work them out at all.

If you can give me any help at all it would be very much appreciated!

The data/tables are defined below:

SERVICE
regno
gid
sdate
smileage
scost
servrep

CAR
regno
model_id
curr_milge
next_serv
cyear
colour

MODEL
model_id
make
unit_price
mileage_da

REPLACE
regno
gid
pno

PART
partno
pdesc

RENTAL
hireno
regno
rentalno
dateout
datein
milesout
milesin
cost

CUST
custno
cname
cname_1
cadd_1
ccode
cd_o_b

GARAGE
gid
gname
gadd

Any help would be very much appreciated!

Thanks

Rickardo


_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp


Re: Can anybody help me with SQL?

От
Andrew Bell
Дата:
At 08:42 AM 12/10/2001 +0000, Richard Lockwood wrote:
>4. Which customer averaged the most miles/day? (surname)(single rental)
>5. Which customer averaged the least miles/day? (surname)(single rental)
>6. Which customer had to wait for the previous renter to return the car?
>(surname)
>6. What % of rentals are for one day only?
>7. Can cars be rented on a Sunday? (i.e. are there any?) (regno)
>8. List the total amount of money paid to each garage during this period.
>9. What is the average miles driven per day?

This sounds like a homework problem to me :)


-- Andrew Bell
acbell@iastate.edu



Re: [SQL] Can anybody help me with SQL?

От
Stephan Szabo
Дата:

> 1.Which car was rented for the longest single period? (regno)
>
> SELECT regno, MAX(datein-dateout) "Longest Single Period" FROM rental group
> by regno;
>
> Although this works - it shows ALL the regno's longest periods - how would i
> just display the regno?

There's probably a better way, but if I'm getting the question you want
answered right I think these will do it.

select regno, m from rental, (select max(datein-dateout) as m from rental)
foo where m=datein-dateout;

or

select regno, datein-dateout from rental where datein-dateout=(select
max(datein-dateout) from rental);

> 2. Which car was rented for the longest total period? (regno)
Maybe something like this?  Not entirely sure

select regno, t from (select regno, sum(datein-dateout) as t from rental
group by regno) r where t=(select max(total) from (select
sum(datein-dateout) as total from rental group by regno) foo);

> 3. Which customers (if any) were born on Monday? (surname)
>
> For this question i thought that this would work:
>
> SELECT * FROM cust WHERE TO_CHAR(cd_o_b,'DAY') = 'MONDAY'
>
> But it never works - it says 'no rows selected'
> although there are 2 cusotmers born on Monday
> However if you put wednesday instead of monday or any other day it seems to
> work correctly
> Anyone know why this is?

To_char fills out to a given length with spaces, I'd guess that the value
is actually something like 'MONDAY   '
I think you probably want the format FMDAY which should not have the
spaces.