显示正在考虑多个科目的学生[关闭]

问题描述 投票:0回答:1

假设我有一张这样的桌子。

StudentID | SubCode | SubName
-----------------------------
    1          M1       Math
    1          S1       Science
    1          E1       English
    2          H1       History
    2          G2       Geography
    4          M1       Math  

我想要一个显示如下数据的查询..

StudentID | SubCode | SubName
-----------------------------
    1          M1       Math
               S1       Science
               E1       English
    2          H1       History
               G2       Geography
    4          M1       Math  

编辑:

这是我创建的查询,请看看你是否理解。非常感谢您的回复

SELECT 
 EI.[EmpCode], EI.[FirstName]+' '+EI.[LastName] [EmployeeName], EI.[FatherName], Dpt.[FullName] [Department],
 [Desig].[FullName] [Designation], EI.DOB [DateOfBirth], EI.DOJ [JoiningDate], EI.NCNIC [CNIC], EI.Mobile, EI.OfficialEmail,
 EI.Email, EI.Address, [Status].FullName [Status], [Company].FullName [Company], EI.EmpImage [Image], 
 [Academics].MajorSubjects, [Academics].DegreeInstituteName, [Academics].PassingYear, [Academics].CGPA, [Degree].[FullName] [DegreeName],
    CONVERT(varchar(3),DATEDIFF(MONTH, DOJ, GETDATE())/12) +' Year(s) '+
    CONVERT(varchar(2),DATEDIFF(MONTH, DOJ, GETDATE()) % 12)+ ' Month(s)' 
    AS [EXPERIENCE]


FROM [HRM].[tbl_EmployeeInfo] EI,  [HRM].[tbl_Designation] [Desig], HRM.tbl_Department [Dpt], 
[HRM].[tbl_EmployeeStatus] [Status], [AppCNF].[tbl_OrganizationCompany] [Company], [HRM].[tbl_Degree] [Degree],
[HRM].[tbl_EmployeeAcademic] [Academics]
WHERE [Desig].[ID] = EI.DesignationCode
AND
Dpt.ID = EI.[DeptCode]
AND
[Status].ID = EI.EmpStatusCode
AND
[Company].ID = EI.EmpCompanyCode
AND
[EI].ID = [Academics].EmpCode
AND
[Degree].ID = [Academics].[DegreeCode]
ORDER BY 1,4
sql sql-server
1个回答
0
投票

试试这个:

DECLARE @Student TABLE(StudentId CHAR(1), SubCode VARCHAR(2),SubName VARCHAR(10))
INSERT INTO @Student VALUES('1','M1','Math')
INSERT INTO @Student VALUES('1','S1','Science')
INSERT INTO @Student VALUES('1','E1','English')
INSERT INTO @Student VALUES('2','H1','History')
INSERT INTO @Student VALUES('2','G2','Geography')
INSERT INTO @Student VALUES('4','M1','Math')

SELECT CASE WHEN D.RN=1 THEN D.StudentId ELSE '' END StudentId
    ,D.SubCode,D.SubName
FROM(
    SELECT *
        ,ROW_NUMBER() OVER(PARTITION BY StudentId ORDER BY StudentId)RN 
    FROM @Student
    )D
ORDER BY
    D.StudentID, D.RN

输出:

StudentId   SubCode SubName
1           M1      Math
            S1      Science
            E1      English
2           H1      History
            G2      Geography
4           M1      Math
© www.soinside.com 2019 - 2024. All rights reserved.