-- Tricky data -- Expected result: -- Position Team P W D L F A Points -- -------------------- -------------------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- -- 1 Team 01 22 22 0 0 66 0 66 -- 2 Team 03 22 2 17 3 4 9 23 -- w spotkaniach z 02 i 04 zdobyla 7 pkt -- 3 Team 02 22 2 17 3 4 9 23 -- w spotkaniach z 03 i 04 zdobyla 5 pkt -- 4 Team 04 22 2 17 3 4 9 23 -- w spotkaniach z 02 i 03 zdobyla 3 pkt -- 5 Team 09 22 2 16 4 11 16 22 -- 6 Team 06 22 0 20 2 3 9 20 -- w spotkaniach z 05 i 10 zdobyla 5 goli tracac 3 -- 7 Team 05 22 0 20 2 3 9 20 -- w spotkaniach z 06 i 10 zdobyla 4 gole tracac 3 -- 8 Team 10 22 1 17 4 3 9 20 -- w spotkaniach z 05 i 06 nie zdobyla i nie stracila gola -- 9 Team 12 22 0 20 2 1 7 20 -- o kolejnosci w stosunku do 11 decyduje bramka na wyjezdzie -- 10 Team 11 22 0 20 2 1 7 20 -- o kolejnosci w stosunku do 11 decyduje bramka stracona u siebie -- 11 Team 07 22 0 19 3 3 11 19 -- o kolejnosci w stosunku do 07 decyduje ranking (TeamId) -- 12 Team 08 22 0 19 3 3 11 19 -- o kolejnosci w stosunku do 08 decyduje ranking (TeamId) -- 13 Team 13 0 0 0 0 0 0 0 -- nie grala (ale jest wyzej w rankingu od 14 i 15) -- 14 Team 14 0 0 0 0 0 0 0 -- nie grala (ale jest nizej w rankingu od 13 i wyzej od 15) -- 15 Team 15 0 0 0 0 0 0 0 -- nie grala (ale jest nizej w rankingu od 13 i 14) IF OBJECT_ID(N'dbo.Games', 'U') IS NOT NULL DROP TABLE dbo.Games; IF OBJECT_ID(N'dbo.Teams', 'U') IS NOT NULL DROP TABLE dbo.Teams; CREATE TABLE dbo.Teams ( TeamId int NOT NULL, TeamName varchar(20) NOT NULL ); CREATE TABLE dbo.Games ( HomeId int NOT NULL, VisitorId int NOT NULL, HomeGoals int NOT NULL, VisitorGoals int NOT NULL ); INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 1, 'Team 01'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 2, 'Team 02'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 3, 'Team 03'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 4, 'Team 04'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 5, 'Team 05'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 6, 'Team 06'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 7, 'Team 07'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 8, 'Team 08'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 9, 'Team 09'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 10, 'Team 10'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 11, 'Team 11'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 12, 'Team 12'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 13, 'Team 13'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 15, 'Team 15'; INSERT INTO dbo.Teams (TeamId, TeamName) SELECT 14, 'Team 14'; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 2, 1, 0, 3; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 3, 1, 0, 3; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 4, 1, 0, 3; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 5, 1, 0, 3; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 6, 1, 0, 3; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 7, 1, 0, 3; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 8, 1, 0, 3; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 9, 1, 0, 3; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 10, 1, 0, 3; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 11, 1, 0, 3; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 12, 1, 0, 3; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 1, 2, 3, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 3, 2, 1, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 4, 2, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 5, 2, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 6, 2, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 7, 2, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 8, 2, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 9, 2, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 10, 2, 1, 2; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 11, 2, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 12, 2, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 1, 3, 3, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 2, 3, 2, 1; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 4, 3, 1, 1; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 5, 3, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 6, 3, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 7, 3, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 8, 3, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 9, 3, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 10, 3, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 11, 3, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 12, 3, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 1, 4, 3, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 2, 4, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 3, 4, 1, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 5, 4, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 6, 4, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 7, 4, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 8, 4, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 9, 4, 1, 2; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 10, 4, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 11, 4, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 12, 4, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 1, 5, 3, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 2, 5, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 3, 5, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 4, 5, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 6, 5, 1, 1; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 7, 5, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 8, 5, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 9, 5, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 10, 5, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 11, 5, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 12, 5, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 1, 6, 3, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 2, 6, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 3, 6, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 4, 6, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 5, 6, 2, 2; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 7, 6, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 8, 6, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 9, 6, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 10, 6, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 11, 6, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 12, 6, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 1, 7, 3, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 2, 7, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 3, 7, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 4, 7, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 5, 7, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 6, 7, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 8, 7, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 9, 7, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 10, 7, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 11, 7, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 12, 7, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 1, 8, 3, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 2, 8, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 3, 8, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 4, 8, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 5, 8, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 6, 8, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 7, 8, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 9, 8, 4, 2; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 10, 8, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 11, 8, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 12, 8, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 1, 9, 3, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 2, 9, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 3, 9, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 4, 9, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 5, 9, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 6, 9, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 7, 9, 3, 5; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 8, 9, 1, 1; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 10, 9, 2, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 11, 9, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 12, 9, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 1, 10, 3, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 2, 10, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 3, 10, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 4, 10, 1, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 5, 10, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 6, 10, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 7, 10, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 8, 10, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 9, 10, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 11, 10, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 12, 10, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 1, 11, 3, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 2, 11, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 3, 11, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 4, 11, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 5, 11, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 6, 11, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 7, 11, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 8, 11, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 9, 11, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 10, 11, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 12, 11, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 1, 12, 3, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 2, 12, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 3, 12, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 4, 12, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 5, 12, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 6, 12, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 7, 12, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 8, 12, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 9, 12, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 10, 12, 0, 0; INSERT INTO dbo.Games (HomeId, VisitorId, HomeGoals, VisitorGoals) SELECT 11, 12, 1, 1;