Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我如何为我的运动联盟制定赛程表_Sql_Loops_Schedule_Fixtures_Timetable - Fatal编程技术网

Sql 我如何为我的运动联盟制定赛程表

Sql 我如何为我的运动联盟制定赛程表,sql,loops,schedule,fixtures,timetable,Sql,Loops,Schedule,Fixtures,Timetable,我经营一个有3个赛区的小型体育联盟。女士高级组、女士低级组和男士组。根据一个分区的球队数量,他们可能会相互比赛一次,也可能会相互比赛两次 联赛为期12周(一周一晚)(如果参赛队伍较少,则少于几周)。每晚有24场比赛,4个球场有6个时段 由于比赛只有20分钟,每支球队每晚将打2场比赛,如果联赛中有奇数场比赛,最多可打3场。每周可以有不同级别的比赛,一个级别可以休息一周,但最好至少有两个级别在任何给定的一周进行比赛 我已经建立了一个包含所有需要比赛的表: CREATE TABLE [dbo].[Te

我经营一个有3个赛区的小型体育联盟。女士高级组、女士低级组和男士组。根据一个分区的球队数量,他们可能会相互比赛一次,也可能会相互比赛两次

联赛为期12周(一周一晚)(如果参赛队伍较少,则少于几周)。每晚有24场比赛,4个球场有6个时段

由于比赛只有20分钟,每支球队每晚将打2场比赛,如果联赛中有奇数场比赛,最多可打3场。每周可以有不同级别的比赛,一个级别可以休息一周,但最好至少有两个级别在任何给定的一周进行比赛

我已经建立了一个包含所有需要比赛的表:

CREATE TABLE [dbo].[TestMatches](
    [UniqueMatchId] [int] IDENTITY(1,1) NOT NULL,
    [HomeTeam] [varchar](4) NULL,
    [AwayTeam] [varchar](4) NULL
)

INSERT INTO dbo.TestMatches
([HomeTeam]
,[AwayTeam])
VALUES
('LH1', 'LH2')
,('LH1', 'LH3')
,('LH1', 'LH4')
,('LH1', 'LH5')
,('LH1', 'LH6')
,('LH1', 'LH7')
,('LH1', 'LH8')
,('LH1', 'LH9')
,('LH1', 'LH10')
,('LH2', 'LH3')
,('LH2', 'LH4')
,('LH2', 'LH5')
,('LH2', 'LH6')
,('LH2', 'LH7')
,('LH2', 'LH8')
,('LH2', 'LH9')
,('LH2', 'LH10')
,('LH3', 'LH4')
,('LH3', 'LH5')
,('LH3', 'LH6')
,('LH3', 'LH7')
,('LH3', 'LH8')
,('LH3', 'LH9')
,('LH3', 'LH10')
,('LH4', 'LH5')
,('LH4', 'LH6')
,('LH4', 'LH7')
,('LH4', 'LH8')
,('LH4', 'LH9')
,('LH4', 'LH10')
,('LH5', 'LH6')
,('LH5', 'LH7')
,('LH5', 'LH8')
,('LH5', 'LH9')
,('LH5', 'LH10')
,('LH6', 'LH7')
,('LH6', 'LH8')
,('LH6', 'LH9')
,('LH6', 'LH10')
,('LH7', 'LH8')
,('LH7', 'LH9')
,('LH7', 'LH10')
,('LH8', 'LH9')
,('LH8', 'LH10')
,('LH9', 'LH10')
,('LH2', 'LH1')
,('LH3', 'LH1')
,('LH4', 'LH1')
,('LH5', 'LH1')
,('LH6', 'LH1')
,('LH7', 'LH1')
,('LH8', 'LH1')
,('LH9', 'LH1')
,('LH10', 'LH1')
,('LH3', 'LH2')
,('LH4', 'LH2')
,('LH5', 'LH2')
,('LH6', 'LH2')
,('LH7', 'LH2')
,('LH8', 'LH2')
,('LH9', 'LH2')
,('LH10', 'LH2')
,('LH4', 'LH3')
,('LH5', 'LH3')
,('LH6', 'LH3')
,('LH7', 'LH3')
,('LH8', 'LH3')
,('LH9', 'LH3')
,('LH10', 'LH3')
,('LH5', 'LH4')
,('LH6', 'LH4')
,('LH7', 'LH4')
,('LH8', 'LH4')
,('LH9', 'LH4')
,('LH10', 'LH4')
,('LH6', 'LH5')
,('LH7', 'LH5')
,('LH8', 'LH5')
,('LH9', 'LH5')
,('LH10', 'LH5')
,('LH7', 'LH6')
,('LH8', 'LH6')
,('LH9', 'LH6')
,('LH10', 'LH6')
,('LH8', 'LH7')
,('LH9', 'LH7')
,('LH10', 'LH7')
,('LH9', 'LH8')
,('LH10', 'LH8')
,('LH10', 'LH9')
,('LL1', 'LL2')
,('LL1', 'LL3')
,('LL1', 'LL4')
,('LL1', 'LL5')
,('LL1', 'LL6')
,('LL1', 'LL7')
,('LL1', 'LL8')
,('LL1', 'LL9')
,('LL1', 'LL10')
,('LL1', 'LL11')
,('LL1', 'LL12')
,('LL1', 'LL13')
,('LL1', 'LL14')
,('LL2', 'LL3')
,('LL2', 'LL4')
,('LL2', 'LL5')
,('LL2', 'LL6')
,('LL2', 'LL7')
,('LL2', 'LL8')
,('LL2', 'LL9')
,('LL2', 'LL10')
,('LL2', 'LL11')
,('LL2', 'LL12')
,('LL2', 'LL13')
,('LL2', 'LL14')
,('LL3', 'LL4')
,('LL3', 'LL5')
,('LL3', 'LL6')
,('LL3', 'LL7')
,('LL3', 'LL8')
,('LL3', 'LL9')
,('LL3', 'LL10')
,('LL3', 'LL11')
,('LL3', 'LL12')
,('LL3', 'LL13')
,('LL3', 'LL14')
,('LL4', 'LL5')
,('LL4', 'LL6')
,('LL4', 'LL7')
,('LL4', 'LL8')
,('LL4', 'LL9')
,('LL4', 'LL10')
,('LL4', 'LL11')
,('LL4', 'LL12')
,('LL4', 'LL13')
,('LL4', 'LL14')
,('LL5', 'LL6')
,('LL5', 'LL7')
,('LL5', 'LL8')
,('LL5', 'LL9')
,('LL5', 'LL10')
,('LL5', 'LL11')
,('LL5', 'LL12')
,('LL5', 'LL13')
,('LL5', 'LL14')
,('LL6', 'LL7')
,('LL6', 'LL8')
,('LL6', 'LL9')
,('LL6', 'LL10')
,('LL6', 'LL11')
,('LL6', 'LL12')
,('LL6', 'LL13')
,('LL6', 'LL14')
,('LL7', 'LL8')
,('LL7', 'LL9')
,('LL7', 'LL10')
,('LL7', 'LL11')
,('LL7', 'LL12')
,('LL7', 'LL13')
,('LL7', 'LL14')
,('LL8', 'LL9')
,('LL8', 'LL10')
,('LL8', 'LL11')
,('LL8', 'LL12')
,('LL8', 'LL13')
,('LL8', 'LL14')
,('LL9', 'LL10')
,('LL9', 'LL11')
,('LL9', 'LL12')
,('LL9', 'LL13')
,('LL9', 'LL14')
,('LL10', 'LL11')
,('LL10', 'LL12')
,('LL10', 'LL13')
,('LL10', 'LL14')
,('LL11', 'LL12')
,('LL11', 'LL13')
,('LL11', 'LL14')
,('LL12', 'LL13')
,('LL12', 'LL14')
,('LL13', 'LL14')
,('M1', 'M2')
,('M1', 'M3')
,('M1', 'M4')
,('M1', 'M5')
,('M1', 'M6')
,('M1', 'M7')
,('M1', 'M8')
,('M1', 'M9')
,('M2', 'M3')
,('M2', 'M4')
,('M2', 'M5')
,('M2', 'M6')
,('M2', 'M7')
,('M2', 'M8')
,('M2', 'M9')
,('M3', 'M4')
,('M3', 'M5')
,('M3', 'M6')
,('M3', 'M7')
,('M3', 'M8')
,('M3', 'M9')
,('M4', 'M5')
,('M4', 'M6')
,('M4', 'M7')
,('M4', 'M8')
,('M4', 'M9')
,('M5', 'M6')
,('M5', 'M7')
,('M5', 'M8')
,('M5', 'M9')
,('M6', 'M7')
,('M6', 'M8')
,('M6', 'M9')
,('M7', 'M8')
,('M7', 'M9')
,('M8', 'M9')
,('M2', 'M1')
,('M3', 'M1')
,('M4', 'M1')
,('M5', 'M1')
,('M6', 'M1')
,('M7', 'M1')
,('M8', 'M1')
,('M9', 'M1')
,('M3', 'M2')
,('M4', 'M2')
,('M5', 'M2')
,('M6', 'M2')
,('M7', 'M2')
,('M8', 'M2')
,('M9', 'M2')
,('M4', 'M3')
,('M5', 'M3')
,('M6', 'M3')
,('M7', 'M3')
,('M8', 'M3')
,('M9', 'M3')
,('M5', 'M4')
,('M6', 'M4')
,('M7', 'M4')
,('M8', 'M4')
,('M9', 'M4')
,('M6', 'M5')
,('M7', 'M5')
,('M8', 'M5')
,('M9', 'M5')
,('M7', 'M6')
,('M8', 'M6')
,('M9', 'M6')
,('M8', 'M7')
,('M9', 'M7')
,('M9', 'M8')
我还构建了一个包含所有可用时间段的表:

CREATE TABLE dbo.TestPitchTimes(
[UniqueSlotId] [int] IDENTITY(1,1) NOT NULL,
WeekNo varchar(6) NULL,
PitchNo varchar(2) NULL,
TimeSlot char(4) NULL
)

INSERT INTO dbo.TestPitchTimes
(WeekNo,
PitchNo,
TimeSlot
)
VALUES
('Week1', 'P1', '1900')
,('Week1', 'P1', '1925')
,('Week1', 'P1', '1950')
,('Week1', 'P1', '2015')
,('Week1', 'P1', '2040')
,('Week1', 'P1', '2105')
,('Week1', 'P2', '1900')
,('Week1', 'P2', '1925')
,('Week1', 'P2', '1950')
,('Week1', 'P2', '2015')
,('Week1', 'P2', '2040')
,('Week1', 'P2', '2105')
,('Week1', 'P3', '1900')
,('Week1', 'P3', '1925')
,('Week1', 'P3', '1950')
,('Week1', 'P3', '2015')
,('Week1', 'P3', '2040')
,('Week1', 'P3', '2105')
,('Week1', 'P4', '1900')
,('Week1', 'P4', '1925')
,('Week1', 'P4', '1950')
,('Week1', 'P4', '2015')
,('Week1', 'P4', '2040')
,('Week1', 'P4', '2105')
,('Week2', 'P1', '1900')
,('Week2', 'P1', '1925')
,('Week2', 'P1', '1950')
,('Week2', 'P1', '2015')
,('Week2', 'P1', '2040')
,('Week2', 'P1', '2105')
,('Week2', 'P2', '1900')
,('Week2', 'P2', '1925')
,('Week2', 'P2', '1950')
,('Week2', 'P2', '2015')
,('Week2', 'P2', '2040')
,('Week2', 'P2', '2105')
,('Week2', 'P3', '1900')
,('Week2', 'P3', '1925')
,('Week2', 'P3', '1950')
,('Week2', 'P3', '2015')
,('Week2', 'P3', '2040')
,('Week2', 'P3', '2105')
,('Week2', 'P4', '1900')
,('Week2', 'P4', '1925')
,('Week2', 'P4', '1950')
,('Week2', 'P4', '2015')
,('Week2', 'P4', '2040')
,('Week2', 'P4', '2105')
,('Week3', 'P1', '1900')
,('Week3', 'P1', '1925')
,('Week3', 'P1', '1950')
,('Week3', 'P1', '2015')
,('Week3', 'P1', '2040')
,('Week3', 'P1', '2105')
,('Week3', 'P2', '1900')
,('Week3', 'P2', '1925')
,('Week3', 'P2', '1950')
,('Week3', 'P2', '2015')
,('Week3', 'P2', '2040')
,('Week3', 'P2', '2105')
,('Week3', 'P3', '1900')
,('Week3', 'P3', '1925')
,('Week3', 'P3', '1950')
,('Week3', 'P3', '2015')
,('Week3', 'P3', '2040')
,('Week3', 'P3', '2105')
,('Week3', 'P4', '1900')
,('Week3', 'P4', '1925')
,('Week3', 'P4', '1950')
,('Week3', 'P4', '2015')
,('Week3', 'P4', '2040')
,('Week3', 'P4', '2105')
,('Week4', 'P1', '1900')
,('Week4', 'P1', '1925')
,('Week4', 'P1', '1950')
,('Week4', 'P1', '2015')
,('Week4', 'P1', '2040')
,('Week4', 'P1', '2105')
,('Week4', 'P2', '1900')
,('Week4', 'P2', '1925')
,('Week4', 'P2', '1950')
,('Week4', 'P2', '2015')
,('Week4', 'P2', '2040')
,('Week4', 'P2', '2105')
,('Week4', 'P3', '1900')
,('Week4', 'P3', '1925')
,('Week4', 'P3', '1950')
,('Week4', 'P3', '2015')
,('Week4', 'P3', '2040')
,('Week4', 'P3', '2105')
,('Week4', 'P4', '1900')
,('Week4', 'P4', '1925')
,('Week4', 'P4', '1950')
,('Week4', 'P4', '2015')
,('Week4', 'P4', '2040')
,('Week4', 'P4', '2105')
,('Week5', 'P1', '1900')
,('Week5', 'P1', '1925')
,('Week5', 'P1', '1950')
,('Week5', 'P1', '2015')
,('Week5', 'P1', '2040')
,('Week5', 'P1', '2105')
,('Week5', 'P2', '1900')
,('Week5', 'P2', '1925')
,('Week5', 'P2', '1950')
,('Week5', 'P2', '2015')
,('Week5', 'P2', '2040')
,('Week5', 'P2', '2105')
,('Week5', 'P3', '1900')
,('Week5', 'P3', '1925')
,('Week5', 'P3', '1950')
,('Week5', 'P3', '2015')
,('Week5', 'P3', '2040')
,('Week5', 'P3', '2105')
,('Week5', 'P4', '1900')
,('Week5', 'P4', '1925')
,('Week5', 'P4', '1950')
,('Week5', 'P4', '2015')
,('Week5', 'P4', '2040')
,('Week5', 'P4', '2105')
,('Week6', 'P1', '1900')
,('Week6', 'P1', '1925')
,('Week6', 'P1', '1950')
,('Week6', 'P1', '2015')
,('Week6', 'P1', '2040')
,('Week6', 'P1', '2105')
,('Week6', 'P2', '1900')
,('Week6', 'P2', '1925')
,('Week6', 'P2', '1950')
,('Week6', 'P2', '2015')
,('Week6', 'P2', '2040')
,('Week6', 'P2', '2105')
,('Week6', 'P3', '1900')
,('Week6', 'P3', '1925')
,('Week6', 'P3', '1950')
,('Week6', 'P3', '2015')
,('Week6', 'P3', '2040')
,('Week6', 'P3', '2105')
,('Week6', 'P4', '1900')
,('Week6', 'P4', '1925')
,('Week6', 'P4', '1950')
,('Week6', 'P4', '2015')
,('Week6', 'P4', '2040')
,('Week6', 'P4', '2105')
,('Week7', 'P1', '1900')
,('Week7', 'P1', '1925')
,('Week7', 'P1', '1950')
,('Week7', 'P1', '2015')
,('Week7', 'P1', '2040')
,('Week7', 'P1', '2105')
,('Week7', 'P2', '1900')
,('Week7', 'P2', '1925')
,('Week7', 'P2', '1950')
,('Week7', 'P2', '2015')
,('Week7', 'P2', '2040')
,('Week7', 'P2', '2105')
,('Week7', 'P3', '1900')
,('Week7', 'P3', '1925')
,('Week7', 'P3', '1950')
,('Week7', 'P3', '2015')
,('Week7', 'P3', '2040')
,('Week7', 'P3', '2105')
,('Week7', 'P4', '1900')
,('Week7', 'P4', '1925')
,('Week7', 'P4', '1950')
,('Week7', 'P4', '2015')
,('Week7', 'P4', '2040')
,('Week7', 'P4', '2105')
,('Week8', 'P1', '1900')
,('Week8', 'P1', '1925')
,('Week8', 'P1', '1950')
,('Week8', 'P1', '2015')
,('Week8', 'P1', '2040')
,('Week8', 'P1', '2105')
,('Week8', 'P2', '1900')
,('Week8', 'P2', '1925')
,('Week8', 'P2', '1950')
,('Week8', 'P2', '2015')
,('Week8', 'P2', '2040')
,('Week8', 'P2', '2105')
,('Week8', 'P3', '1900')
,('Week8', 'P3', '1925')
,('Week8', 'P3', '1950')
,('Week8', 'P3', '2015')
,('Week8', 'P3', '2040')
,('Week8', 'P3', '2105')
,('Week8', 'P4', '1900')
,('Week8', 'P4', '1925')
,('Week8', 'P4', '1950')
,('Week8', 'P4', '2015')
,('Week8', 'P4', '2040')
,('Week8', 'P4', '2105')
,('Week9', 'P1', '1900')
,('Week9', 'P1', '1925')
,('Week9', 'P1', '1950')
,('Week9', 'P1', '2015')
,('Week9', 'P1', '2040')
,('Week9', 'P1', '2105')
,('Week9', 'P2', '1900')
,('Week9', 'P2', '1925')
,('Week9', 'P2', '1950')
,('Week9', 'P2', '2015')
,('Week9', 'P2', '2040')
,('Week9', 'P2', '2105')
,('Week9', 'P3', '1900')
,('Week9', 'P3', '1925')
,('Week9', 'P3', '1950')
,('Week9', 'P3', '2015')
,('Week9', 'P3', '2040')
,('Week9', 'P3', '2105')
,('Week9', 'P4', '1900')
,('Week9', 'P4', '1925')
,('Week9', 'P4', '1950')
,('Week9', 'P4', '2015')
,('Week9', 'P4', '2040')
,('Week9', 'P4', '2105')
,('Week10', 'P1', '1900')
,('Week10', 'P1', '1925')
,('Week10', 'P1', '1950')
,('Week10', 'P1', '2015')
,('Week10', 'P1', '2040')
,('Week10', 'P1', '2105')
,('Week10', 'P2', '1900')
,('Week10', 'P2', '1925')
,('Week10', 'P2', '1950')
,('Week10', 'P2', '2015')
,('Week10', 'P2', '2040')
,('Week10', 'P2', '2105')
,('Week10', 'P3', '1900')
,('Week10', 'P3', '1925')
,('Week10', 'P3', '1950')
,('Week10', 'P3', '2015')
,('Week10', 'P3', '2040')
,('Week10', 'P3', '2105')
,('Week10', 'P4', '1900')
,('Week10', 'P4', '1925')
,('Week10', 'P4', '1950')
,('Week10', 'P4', '2015')
,('Week10', 'P4', '2040')
,('Week10', 'P4', '2105')
,('Week11', 'P1', '1900')
,('Week11', 'P1', '1925')
,('Week11', 'P1', '1950')
,('Week11', 'P1', '2015')
,('Week11', 'P1', '2040')
,('Week11', 'P1', '2105')
,('Week11', 'P2', '1900')
,('Week11', 'P2', '1925')
,('Week11', 'P2', '1950')
,('Week11', 'P2', '2015')
,('Week11', 'P2', '2040')
,('Week11', 'P2', '2105')
,('Week11', 'P3', '1900')
,('Week11', 'P3', '1925')
,('Week11', 'P3', '1950')
,('Week11', 'P3', '2015')
,('Week11', 'P3', '2040')
,('Week11', 'P3', '2105')
,('Week11', 'P4', '1900')
,('Week11', 'P4', '1925')
,('Week11', 'P4', '1950')
,('Week11', 'P4', '2015')
,('Week11', 'P4', '2040')
,('Week11', 'P4', '2105')
,('Week12', 'P1', '1900')
,('Week12', 'P1', '1925')
,('Week12', 'P1', '1950')
,('Week12', 'P1', '2015')
,('Week12', 'P1', '2040')
,('Week12', 'P1', '2105')
,('Week12', 'P2', '1900')
,('Week12', 'P2', '1925')
,('Week12', 'P2', '1950')
,('Week12', 'P2', '2015')
,('Week12', 'P2', '2040')
,('Week12', 'P2', '2105')
,('Week12', 'P3', '1900')
,('Week12', 'P3', '1925')
,('Week12', 'P3', '1950')
,('Week12', 'P3', '2015')
,('Week12', 'P3', '2040')
,('Week12', 'P3', '2105')
,('Week12', 'P4', '1900')
,('Week12', 'P4', '1925')
,('Week12', 'P4', '1950')
,('Week12', 'P4', '2015')
,('Week12', 'P4', '2040')
,('Week12', 'P4', '2105')

我需要能够做的是运行一个循环(也许?),将比赛分配给每周,这样球队就可以打>=2场比赛,或者你已经尝试过什么了?你的预期结果会是什么样子?老实说,我真的不确定从哪里开始,我计算了一下我需要11周才能适应253场比赛,然后我开始写一个循环,但只增加了11次迭代,每次迭代包含的内容让我感到困惑!我期望的结果是:WeekNo,UniqueMatchID,HomeTeam,AwayTeam。然后是第1周、第1周、第1周、第2周的列表;每周标题下的第1周、第2周、第1周、第3周等24场比赛。只需用预期结果编辑您的问题!:)新的堆栈溢出以及!!你已经试过什么了吗?你的预期结果会是什么样子?老实说,我真的不确定从哪里开始,我计算了一下我需要11周才能适应253场比赛,然后我开始写一个循环,但只增加了11次迭代,每次迭代包含的内容让我感到困惑!我期望的结果是:WeekNo,UniqueMatchID,HomeTeam,AwayTeam。然后是第1周、第1周、第1周、第2周的列表;每周标题下的第1周、第2周、第1周、第3周等24场比赛。只需用预期结果编辑您的问题!:)新的堆栈溢出以及!!