Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Coding for rank
Message
From
23/09/2008 20:03:42
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Environment versions
Visual FoxPro:
VFP 9
OS:
Windows XP
Network:
Windows 2008 Server
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01349737
Message ID:
01350072
Views:
15
>>>I have create a student rank.dbf with five fields namely 1. English 2. Maths 3. Science 4. Total marks 5. Rank.
>>>
>>>I want to put the Rank for each student based on their Total marks secured.The total marks is out of 500.
>>>
>>>
>>>For example student A secured total marks is 489 out of 500 and student B is 492 and student C is 389 and student D is 391.
>>>
>>>The Rank for Student B is 1 and student A is 2 and student D is 3 and student C is 4.
>>>
>>>How to Write source code?
>>
>>UPDATE rank;
>>    SET rank = q2.rank;
>>           FROM (SELECT RECNO() as rank,q1.* FROM (select student,tm FROM rank ORDER BY 2 desc) q1) q2;
>>    WHERE ranktable.student=q2.student
>>
>>
>>To give credit where it is due............this is not my code. It is modified from a presentation on SQL Tips made by Brad Shulz to the SF Bay Area FoxPro user group.
>
>This code doesn't account for ties.


Here's the code which will assign the same rank to equal results
UPDATE rank;
     SET rank = q2.rank;
          FROM (SELECT rt2.student,rt2.tm,(SELECT COUNT(*)+1 AS rank FROM rank r1;
                        WHERE r1.tm> rt2.tm) FROM rank rt2) q2;
     WHERE rank.student=q2.student
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform