2014-01-29 26 views
-3

我有2個表StudentEnrollmentDetailsStudentExamAnalysis。使用這兩個表我需要以下輸出。MySQL的:需要下面的輸出

SchoolId Rank StudentName Percentage 
1  1 ABC   70 
1  2 ABD   69.56 
1  3 ABC   69 
2  1 ABC   71 
2  2 ABD   68.56 
2  3 ABC   63 

我有一個基本的查詢。我需要在飛行中產生排名。

SELECT SED.SchoolId, @s:[email protected]+1 serial_number, SAED.* 
FROM StudentAnswerExamData SAED INNER JOIN StudentEnrollmentDetails SED ON SED.StudentEnrollmentDetailsId = SAED.StudentEnrollmentDetailsId 
INNER JOIN (SELECT @s:= 0) AS s 
WHERE SED.ExamCategoryId = 2 AND SED.ExamId = 2 AND SED.Standard = 5 AND SED.CompanyId = 2 
ORDER BY SED.SchoolId, SAED.Percentage DESC; 

Table Definition
Table: studentenrollmentdetails
FIELD TYPE


StudentEnrollmentDetailsId BIGINT(20)
StudentId BIGINT(20)
StudentRegNo BIGINT(20)
ExamCategoryId INT(11)
ExamId BIGINT(20)
SchoolId BIGINT(20)
SourceId BIGINT(20)
SourceAccountId BIGINT(20)
Standard INT(11)
Amount DECIMAL(10,2) IsOptionEnabled TINYINT(1)
ExamSessionId BIGINT(20)
EnrollmentFormPath VARCHAR(300)
Division VARCHAR(10)
TransactionTime DATETIME
CompanyId INT(11)
STATUS INT(11)
UploadedBy BIGINT(20)
FileId BIGINT(20)
LastModifiedBy BIGINT(20)
LastModifiedByTime DATETIME
SchoolName VARCHAR(100)
SchoolLocation VARCHAR(100)
MarkForDelete TINYINT(1)

Table: studentanswerexamdata
Column Information
FIELD TYPE


StudentAnswerExamDataId BIGINT(20)
StudentId BIGINT(20)
StudentEnrollmentDetailsId BIGINT(20)
ExamCategoryId INT(10)
ExamId BIGINT(20)
Standard INT(10)
CompanyId INT(10)
UploadedById BIGINT(20)
UploadedDateTime DATETIME
ModifiedById BIGINT(20)
ModifiedDateTime DATETIME
MarkForDelete TINYINT(1)
SeatNo BIGINT(20)
NoOfCorrect INT(11)
NoOfInCorrect INT(11)
NoOfMissing INT(11)
MarksScored DECIMAL(6,2)
Percentage DECIMAL(5,2)
SchoolRank INT(11)
DistrictRank INT(11)
StateRank INT(11)
NationalRank INT

+1

太好了。我需要{..whatever ..} - 你的表格定義在哪裏?輸入數據的樣本在哪裏? –

回答

1

試試這個:

SELECT *, (IF(@[email protected]:=A.schoolId, @s:[email protected]+1, @s:=1)) serial_number 
FROM (SELECT SED.SchoolId, SAED.* 
     FROM StudentAnswerExamData SAED 
     INNER JOIN StudentEnrollmentDetails SED ON SED.StudentEnrollmentDetailsId = SAED.StudentEnrollmentDetailsId 
     WHERE SED.ExamCategoryId = 2 AND SED.ExamId = 2 AND SED.Standard = 5 AND 
      SED.CompanyId = 2 
     ORDER BY SED.SchoolId, SAED.Percentage DESC 
    ) AS A, (SELECT @s:=1, @schoolId:=0) AS s; 

檢查此鏈接SQL FIDDLE DEMO

輸出

| SCHOOLID | STUDENTANSWEREXAMDATAID | STUDENTID | STUDENTENROLLMENTDETAILSID | EXAMCATEGORYID | EXAMID | STANDARD | COMPANYID | UPLOADEDBYID |    UPLOADEDDATETIME | MODIFIEDBYID |    MODIFIEDDATETIME | MARKFORDELETE |  SEATNO | NOOFCORRECT | NOOFINCORRECT | NOOFMISSING | MARKSSCORED | PERCENTAGE | SCHOOLRANK | DISTRICTRANK | STATERANK | NATIONALRANK | PROCESSEDSTATUS | FILEPATH | @S:=1 | @SCHOOLID:=0 | SERIAL_NUMBER | 
|----------|-------------------------|-----------|----------------------------|----------------|--------|----------|-----------|--------------|--------------------------------|--------------|--------------------------------|---------------|------------|-------------|---------------|-------------|-------------|------------|------------|--------------|-----------|--------------|-----------------|----------|-------|--------------|---------------| 
|  23 |      4 |  1546 |      2044 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1023052901 |   38 |   37 |   0 |   113 |  75.33 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    1 | 
|  54 |      6 |  1557 |      2055 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1054052901 |   25 |   46 |   4 |   96 |   64 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    1 | 
|  56 |      16 |  1550 |      2048 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1056052903 |   36 |   39 |   0 |   111 |   74 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    1 | 
|  56 |      15 |  1549 |      2047 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1056052902 |   30 |   43 |   2 |   103 |  68.67 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    2 | 
|  56 |      13 |  1548 |      2046 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1056052901 |   27 |   48 |   0 |   102 |   68 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    3 | 
|  74 |      7 |  1551 |      2049 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1074052901 |   21 |   54 |   0 |   96 |   64 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    1 | 
|  78 |      8 |  1558 |      2056 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1078052901 |   37 |   38 |   0 |   112 |  74.67 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    1 | 
|  108 |      9 |  1547 |      2045 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1108052901 |   26 |   46 |   3 |   98 |  65.33 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    1 | 
|  114 |      10 |  1555 |      2053 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1114052901 |   28 |   47 |   0 |   103 |  68.67 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    1 | 
|  133 |      5 |  1556 |      2054 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1133052901 |   44 |   29 |   2 |   117 |   78 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    1 | 
|  160 |      3 |  1552 |      2050 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1160052901 |   25 |   50 |   0 |   100 |  66.67 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    1 | 
|  164 |      14 |  1553 |      2051 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1164052901 |   32 |   43 |   0 |   107 |  71.33 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    1 | 
|  170 |      17 |  1554 |      2052 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1170052901 |   12 |   15 |   48 |   39 |   26 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    1 | 
|  324 |      12 |  1560 |      2058 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1324052902 |   41 |   32 |   2 |   114 |   76 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    1 | 
|  324 |      11 |  1559 |      2057 |    2 |  2 |  5 |   2 |   5 | January, 28 2014 15:01:13+0000 |   1 | January, 29 2014 11:19:35+0000 |    0 | 1324052901 |   29 |   33 |   13 |   91 |  60.67 |   -1 |   -1 |  -1 |   -1 |    1 | (null) |  1 |   0 |    2 | 
+0

Thanx。但對於排名都是相同的,即1 – Amar

+0

這是輸出 'SchoolId | serial_number |百分比 ++++++++++++++++++++++++++++++++++++++++ 56 | 2 | 74.00 56 | 1 | 68.67 56 | 1 | 68.00' 這不是預期的輸出。我也在這裏掙扎。 – Amar

+0

這裏是鏈接[鏈接] http://sqlfiddle.com/#!2/4b3ce/1 – Amar