• John Mitchell-245523 (12/16/2013)


    No need for a cte to do this.

    The reason for the CTE is because he wants SubName instead of SubID. Also, if SubName isn't unique, that would mess up the grouping with a straight join.

    You can easily handle this by adding SubID to the grouping.

    insert Subject

    select 'Subject One', 3, 1 union all

    select 'Subject One', 3, 1

    insert Marks

    select 1, 1, 88.9, 22 union all

    select 2, 2, 55, 1

    select s.SubName, MAX(m.Mark)as diem

    from Marks m

    join Subject s on s.SubID = m.SubID group by s.SubName, s.SubID

    _______________________________________________________________

    Need help? Help us help you.

    Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

    Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.

    Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
    Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
    Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/