• Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

SQL test

I like this solution best:

select 1000-max(salary*1000-age)%1000 from salary

always finds the youngest person having the highest salary (as long as no one is > 1000 years old)


:cool1:
 
DimPrawn said:
I like this solution best:

select 1000-max(salary*1000-age)%1000 from salary

always finds the youngest person having the highest salary (as long as no one is > 1000 years old)


:cool1:
nice :)
 
One thing you've got to watch is that there might be another guy the same age as Tom, but on a lower salary. So I would suggest, (we'll call the table "wages"):

select * from wages
where age =

(select MIN(age) from wages
where salary = (select MAX(salary) from wages))

AND salary = (select MAX(salary) from wages)


or alternatively to avoid having to do the max salary select twice:


declare @maxsalary INT
select @maxsalary = MAX(salary) from wages

select * from wages
where age = (select MIN(age) from wages where salary = @maxsalary)
AND salary = @maxsalary

Any good?
 
how about:



SELECT wages.*
FROM Wages,(select max(wage) as sal from wages ) as FF
WHERE wages.age = (select min(age) from wages where wage= [FF].[Sal])
and Wages.wage = [FF].[sal]


wow! I actually wrote something that works! :D
 

Advertisers

Back
Top