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