WARNING - ONLY RUN THESE SCRIPTS IF YOU HAVE NOT YET BEGUN MANUALLY SETTING UP FLEX SCHEDULING TABLES.
BE SURE TO TEST THESE SCRIPTS IN A "TEST" DATABASE.
These scripts are designed to be used for schools that have not yet rolled over into the new school year and that have an SMS table already decently well developed but you wish to switch over to using Flex Scheduling next school year.
Scripts to convert your scheduling environment to Flex Scheduling after you have rolled over to the new school year, but before you have rolled from SMS to MST are further down this page.
Parameters to Adjust Before Running:
- @SC - This is the Aeries School Code to be processed
- @NextSchoolYear - This is the 9-digit school year for next year: '2023-2024'
- @SampleMon - This is the Monday of an Example Week during next school year: '9/6/2023'
- @SampleTue - This is the Tuesday of an Example Week during next school year: '9/7/2023'
- @SampleWed - This is the Wednesday of an Example Week during next school year: '9/8/2023'
- @SampleThu - This is the Thursday of an Example Week during next school year: '9/9/2023'
- @SampleFri - This is the Friday of an Example Week during next school year: '9/10/2023'
IN 2022-2023 SCHOOL YEAR
Create Flex Periods based on current BEL table and assign them to any existing SMS records. This is a standard starting point to work from.
-- Create Flex Periods based on current BEL table and assign them to any existing SMS records. This is a standard starting point to work from. DECLARE @SC int DECLARE @NextSchoolYear varchar(9) SET @SC = 994 SET @NextSchoolYear = '2022-2023' INSERT INTO FTF (SC, YR, STI, DE, ST, ET) SELECT SC, @NextSchoolYear, CONVERT(varchar, PD) STI, ('Pd ' + CONVERT(varchar, PD)) DE , '1/1/1900 ' + CONVERT(varchar, BEL.T1, 114) , '1/1/1900 ' + CONVERT(varchar, BEL.T2, 114) FROM BEL WHERE SC = @SC AND DEL = 0 AND DY = 0 AND (@NextSchoolYear + '_' + CONVERT(varchar, @SC) + '_' + CONVERT(varchar, PD)) NOT IN (SELECT (YR + '_' + CONVERT(varchar, SC) + '_' + STI) FROM FTF WHERE SC = @SC) UPDATE SMS SET SMS.FSQ = FTF.SQ FROM SMS INNER JOIN FTF ON SMS.SC = FTF.SC AND CONVERT(varchar, SMS.PD) = FTF.STI WHERE SMS.DEL = 0 AND SMS.SC = @SC AND FTF.SC = @SC AND SMS.FSQ = 0 AND FTF.YR = @NextSchoolYear
IN 2022-2023 SCHOOL YEAR
Create Class Calendar Records according to the data in SMS and associate the SMS records
--Create Class Calendar Records according to the data in SMS and associate the SMS records DECLARE @SQ int DECLARE @SC int DECLARE @NextSchoolYear varchar(9) DECLARE @SampleMon Date DECLARE @SampleTue Date DECLARE @SampleWed Date DECLARE @SampleThu Date DECLARE @SampleFri Date SET @SC = 994 SET @NextSchoolYear = '2023-2024' SET @SampleMon = '9/6/2023' SET @SampleTue = '9/7/2023' SET @SampleWed = '9/8/2023' SET @SampleThu = '9/9/2023' SET @SampleFri = '9/10/2023' IF NOT EXISTS(SELECT SQ FROM CCL WHERE DEL = 0 AND SC = @SC AND STI = 'MTWRF' AND YR = @NextSchoolYear) BEGIN INSERT INTO CCL (SC, YR, STI) VALUES (@SC, @NextSchoolYear, 'MTWRF') SET @SQ = @@IDENTITY INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleMon) INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleTue) INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleWed) INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleThu) INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleFri) UPDATE SMS SET CSQ = @SQ WHERE SC = @SC AND DEL = 0 END IF EXISTS(SELECT DY FROM SMS WHERE SC = @SC AND DY = 'A-DAYS') BEGIN IF NOT EXISTS(SELECT SQ FROM CCL WHERE DEL = 0 AND SC = @SC AND STI = 'A-DAYS' AND YR = @NextSchoolYear) BEGIN INSERT INTO CCL (SC, YR, STI) VALUES (@SC, @NextSchoolYear, 'A-DAYS') SET @SQ = @@IDENTITY INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleMon) INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleWed) UPDATE SMS SET CSQ = @SQ WHERE SC = @SC AND DEL = 0 AND DY = 'A-DAYS' END END IF EXISTS(SELECT DY FROM SMS WHERE SC = @SC AND DY = 'B-DAYS') BEGIN IF NOT EXISTS(SELECT SQ FROM CCL WHERE DEL = 0 AND SC = @SC AND STI = 'B-DAYS' AND YR = @NextSchoolYear) BEGIN INSERT INTO CCL (SC, YR, STI) VALUES (@SC, @NextSchoolYear, 'B-DAYS') SET @SQ = @@IDENTITY INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleTue) INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleThu) UPDATE SMS SET CSQ = @SQ WHERE SC = @SC AND DEL = 0 AND DY = 'B-DAYS' END END DECLARE @M bit DECLARE @T bit DECLARE @W bit DECLARE @R bit DECLARE @F bit DECLARE @PATTERN varchar(5) DECLARE sms_cursor CURSOR FOR SELECT DISTINCT MM, MT, MW, MR, MF FROM SMS WHERE SC = @SC AND DEL = 0 AND DY NOT IN ('MTWRF','MTWTF','A-DAYS','B-DAYS'); OPEN sms_cursor FETCH NEXT FROM sms_cursor INTO @M, @T, @W, @R, @F WHILE @@FETCH_STATUS = 0 BEGIN SET @PATTERN = '' IF @M = 1 SET @PATTERN = @PATTERN + 'M' IF @T = 1 SET @PATTERN = @PATTERN + 'T' IF @W = 1 SET @PATTERN = @PATTERN + 'W' IF @R = 1 SET @PATTERN = @PATTERN + 'R' IF @F = 1 SET @PATTERN = @PATTERN + 'F' IF NOT EXISTS(SELECT SQ FROM CCL WHERE DEL = 0 AND SC = @SC AND STI = @PATTERN AND YR = @NextSchoolYear) BEGIN INSERT INTO CCL (SC, YR, STI) VALUES (@SC, @NextSchoolYear, @PATTERN) SET @SQ = @@IDENTITY IF @M = 1 INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleMon) IF @T = 1 INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleTue) IF @W = 1 INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleWed) IF @R = 1 INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleThu) IF @F = 1 INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleFri) UPDATE SMS SET CSQ = @SQ WHERE SC = @SC AND DEL = 0 AND DY NOT IN ('MTWRF','MTWTF','A-DAYS','B-DAYS') AND MM=@M AND MT=@T AND MW=@W AND MR=@R AND MF=@F END FETCH NEXT FROM sms_cursor INTO @M, @T, @W, @R, @F END CLOSE sms_cursor; DEALLOCATE sms_cursor;
IN 2022-2023 SCHOOL YEAR
Create Section Staff (SSM) Records linked to SMS
-- Create Section Staff (SSM) Records linked to SMS DECLARE @SC int SET @SC = 994 -- SMS.TN & TCH.ID INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID, 1 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID > 0 AND SSM.ID IS NULL -- SMS.TN & TCH.ID2 INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID2, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID2 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID2 > 0 AND SSM.ID IS NULL -- SMS.TN & TCH.ID3 INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID3, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID3 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID3 > 0 AND SSM.ID IS NULL -- SMS.TN2 & TCH.ID INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN2 = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID > 0 AND SSM.ID IS NULL -- SMS.TN2 & TCH.ID2 INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID2, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN2 = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID2 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID2 > 0 AND SSM.ID IS NULL -- SMS.TN2 & TCH.ID3 INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID3, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN2 = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID3 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID3 > 0 AND SSM.ID IS NULL -- SMS.TN3 & TCH.ID INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN3 = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID > 0 AND SSM.ID IS NULL -- SMS.TN3 & TCH.ID2 INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID2, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN3 = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID2 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID2 > 0 AND SSM.ID IS NULL -- SMS.TN3 & TCH.ID3 INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID3, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN3 = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID3 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID3 > 0 AND SSM.ID IS NULL
IN 2022-2023 SCHOOL YEAR
Clear out SMS table of Old Scheduling Fields
--Clear out SMS table of Old Scheduling Fields DECLARE @SC int SET @SC = 994 UPDATE SMS SET PD = 0, BL = 0, TN = 0, DY = '', MM = 0, MT = 0, MW = 0, MR = 0, MF = 0, MS = 0 WHERE SC = @SC AND (PD <> 0 OR BL <> 0 OR TN <> 0 OR DY <> '' OR MM <> 0 OR MT <> 0 OR MW <> 0 OR MR <> 0 OR MF <> 0 OR MS <> 0)
IN 2022-2023 SCHOOL YEAR
Some Useful Queries
DECLARE @SC int SET @SC = 994 -- The following lists sections that do not have a Flex Period Assigned: SELECT SMS.SC, SMS.SE, SMS.PD, SMS.FSQ FROM SMS WHERE FSQ = 0 AND SC = @SC -- List Flex Periods in a school: SELECT * FROM FTF WHERE SC = @SC -- List all Section Staff SELECT * FROM SSM -- List Sections without Section Staff SELECT SMS.* FROM SMS LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.DEL = 0 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND SSM.SE IS NULL -- List Sections without a Primary Teacher SELECT SMS.* FROM SMS LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.DEL = 0 AND SSM.PR = 1 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND SSM.SE IS NULL
IN 2023-2024 SCHOOL YEAR
(but you have not yet rolled from SMS to MST)
Create Flex Periods based on current BEL table and assign them to any existing SMS records. This is a standard starting point to work from.
-- Create Flex Periods based on current BEL table and assign them to any existing SMS records. This is a standard starting point to work from. DECLARE @SC int DECLARE @CurrentSchoolYear varchar(9) SET @SC = 994 SET @CurrentSchoolYear = '2023-2024' INSERT INTO FTF (SC, YR, STI, DE, ST, ET) SELECT SC, @CurrentSchoolYear , CONVERT(varchar, PD) STI, ('Pd ' + CONVERT(varchar, PD)) DE, T1, T2 FROM BEL WHERE SC = @SC AND DEL = 0 AND DY = 0 AND (@CurrentSchoolYear + '_' + CONVERT(varchar, @SC) + '_' + CONVERT(varchar, PD)) NOT IN (SELECT (YR + '_' + CONVERT(varchar, SC) + '_' + STI) FROM FTF WHERE SC = @SC) UPDATE SMS SET SMS.FSQ = FTF.SQ FROM SMS INNER JOIN FTF ON SMS.SC = FTF.SC AND CONVERT(varchar, SMS.PD) = FTF.STI WHERE SMS.DEL = 0 AND SMS.SC = @SC AND FTF.SC = @SC AND SMS.FSQ = 0 AND FTF.YR = @CurrentSchoolYear
IN 2023-2024 SCHOOL YEAR
Create Class Calendar Records according to the data in SMS and associate the SMS records
--Create Class Calendar Records according to the data in SMS and DAY and associate the SMS records DECLARE @SQ int DECLARE @SC int DECLARE @CurrentSchoolYear varchar(9) DECLARE @SampleMon Date DECLARE @SampleTue Date DECLARE @SampleWed Date DECLARE @SampleThu Date DECLARE @SampleFri Date SET @SC = 994 SET @CurrentSchoolYear = '2023-2024' SET @SampleMon = '9/6/2023' SET @SampleTue = '9/7/2023' SET @SampleWed = '9/8/2023' SET @SampleThu = '9/9/2023' SET @SampleFri = '9/10/2023' IF NOT EXISTS(SELECT SQ FROM CCL WHERE DEL = 0 AND SC = @SC AND STI = 'MTWRF' AND YR = @CurrentSchoolYear ) BEGIN INSERT INTO CCL (SC, YR, STI) VALUES (@SC, @CurrentSchoolYear , 'MTWRF') SET @SQ = @@IDENTITY IF EXISTS(SELECT TOP 1 DY FROM [DAY] WHERE SC = @SC AND DEL = 0) BEGIN INSERT INTO CCD (CSQ, DT) SELECT @SQ, DT FROM [DAY] WHERE DEL = 0 AND SC = @SC AND (NOT HO > ' ' OR HO = '%' OR HO = '+') END ELSE BEGIN INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleMon) INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleTue) INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleWed) INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleThu) INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleFri) END UPDATE SMS SET CSQ = @SQ WHERE SC = @SC AND DEL = 0 END IF EXISTS(SELECT DY FROM SMS WHERE SC = @SC AND DY = 'A-DAYS') BEGIN IF NOT EXISTS(SELECT SQ FROM CCL WHERE DEL = 0 AND SC = @SC AND STI = 'A-DAYS' AND YR = @CurrentSchoolYear ) BEGIN INSERT INTO CCL (SC, YR, STI) VALUES (@SC, @CurrentSchoolYear , 'A-DAYS') SET @SQ = @@IDENTITY IF EXISTS(SELECT TOP 1 DY FROM [DAY] WHERE SC = @SC AND DEL = 0) BEGIN INSERT INTO CCD (CSQ, DT) SELECT @SQ, DT FROM [DAY] WHERE DEL = 0 AND SC = @SC AND (NOT HO > ' ' OR HO = '%' OR HO = '+') AND AB = 'A' END ELSE BEGIN INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleMon) INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleWed) END UPDATE SMS SET CSQ = @SQ WHERE SC = @SC AND DEL = 0 AND DY = 'A-DAYS' END END IF EXISTS(SELECT DY FROM SMS WHERE SC = @SC AND DY = 'B-DAYS') BEGIN IF NOT EXISTS(SELECT SQ FROM CCL WHERE DEL = 0 AND SC = @SC AND STI = 'B-DAYS' AND YR = @CurrentSchoolYear ) BEGIN INSERT INTO CCL (SC, YR, STI) VALUES (@SC, @CurrentSchoolYear , 'B-DAYS') SET @SQ = @@IDENTITY IF EXISTS(SELECT TOP 1 DY FROM [DAY] WHERE SC = @SC AND DEL = 0) BEGIN INSERT INTO CCD (CSQ, DT) SELECT @SQ, DT FROM [DAY] WHERE DEL = 0 AND SC = @SC AND (NOT HO > ' ' OR HO = '%' OR HO = '+') AND AB = 'B' END ELSE BEGIN INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleTue) INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleThu) END UPDATE SMS SET CSQ = @SQ WHERE SC = @SC AND DEL = 0 AND DY = 'B-DAYS' END END DECLARE @M bit DECLARE @T bit DECLARE @W bit DECLARE @R bit DECLARE @F bit DECLARE @PATTERN varchar(5) DECLARE sms_cursor CURSOR FOR SELECT DISTINCT MM, MT, MW, MR, MF FROM SMS WHERE SC = @SC AND DEL = 0 AND DY NOT IN ('MTWRF','MTWTF','A-DAYS','B-DAYS'); OPEN sms_cursor FETCH NEXT FROM sms_cursor INTO @M, @T, @W, @R, @F WHILE @@FETCH_STATUS = 0 BEGIN SET @PATTERN = '' IF @M = 1 SET @PATTERN = @PATTERN + 'M' IF @T = 1 SET @PATTERN = @PATTERN + 'T' IF @W = 1 SET @PATTERN = @PATTERN + 'W' IF @R = 1 SET @PATTERN = @PATTERN + 'R' IF @F = 1 SET @PATTERN = @PATTERN + 'F' IF NOT EXISTS(SELECT SQ FROM CCL WHERE DEL = 0 AND SC = @SC AND STI = @PATTERN AND YR = @CurrentSchoolYear ) BEGIN INSERT INTO CCL (SC, YR, STI) VALUES (@SC, @CurrentSchoolYear, @PATTERN) SET @SQ = @@IDENTITY IF EXISTS(SELECT TOP 1 DY FROM [DAY] WHERE SC = @SC AND DEL = 0) BEGIN IF @M = 1 INSERT INTO CCD (CSQ, DT) SELECT @SQ, DT FROM [DAY] WHERE DEL = 0 AND SC = @SC AND (NOT HO > ' ' OR HO = '%' OR HO = '+') AND DY % 5 = 1 IF @T = 1 INSERT INTO CCD (CSQ, DT) SELECT @SQ, DT FROM [DAY] WHERE DEL = 0 AND SC = @SC AND (NOT HO > ' ' OR HO = '%' OR HO = '+') AND DY % 5 = 2 IF @W = 1 INSERT INTO CCD (CSQ, DT) SELECT @SQ, DT FROM [DAY] WHERE DEL = 0 AND SC = @SC AND (NOT HO > ' ' OR HO = '%' OR HO = '+') AND DY % 5 = 3 IF @R = 1 INSERT INTO CCD (CSQ, DT) SELECT @SQ, DT FROM [DAY] WHERE DEL = 0 AND SC = @SC AND (NOT HO > ' ' OR HO = '%' OR HO = '+') AND DY % 5 = 4 IF @F = 1 INSERT INTO CCD (CSQ, DT) SELECT @SQ, DT FROM [DAY] WHERE DEL = 0 AND SC = @SC AND (NOT HO > ' ' OR HO = '%' OR HO = '+') AND DY % 5 = 0 END ELSE BEGIN IF @M = 1 INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleMon) IF @T = 1 INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleTue) IF @W = 1 INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleWed) IF @R = 1 INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleThu) IF @F = 1 INSERT INTO CCD (CSQ, DT) VALUES (@SQ, @SampleFri) END UPDATE SMS SET CSQ = @SQ WHERE SC = @SC AND DEL = 0 AND DY NOT IN ('MTWRF','MTWTF','A-DAYS','B-DAYS') AND MM=@M AND MT=@T AND MW=@W AND MR=@R AND MF=@F END FETCH NEXT FROM sms_cursor INTO @M, @T, @W, @R, @F END CLOSE sms_cursor; DEALLOCATE sms_cursor;
IN 2023-2024 SCHOOL YEAR
Create Section Staff (SSM) Records linked to SMS
-- Create Section Staff (SSM) Records linked to SMS DECLARE @SC int SET @SC = 994 -- SMS.TN & TCH.ID INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID, 1 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID > 0 AND SSM.ID IS NULL -- SMS.TN & TCH.ID2 INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID2, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID2 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID2 > 0 AND SSM.ID IS NULL -- SMS.TN & TCH.ID3 INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID3, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID3 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID3 > 0 AND SSM.ID IS NULL -- SMS.TN2 & TCH.ID INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN2 = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID > 0 AND SSM.ID IS NULL -- SMS.TN2 & TCH.ID2 INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID2, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN2 = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID2 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID2 > 0 AND SSM.ID IS NULL -- SMS.TN2 & TCH.ID3 INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID3, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN2 = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID3 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID3 > 0 AND SSM.ID IS NULL -- SMS.TN3 & TCH.ID INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN3 = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID > 0 AND SSM.ID IS NULL -- SMS.TN3 & TCH.ID2 INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID2, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN3 = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID2 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID2 > 0 AND SSM.ID IS NULL -- SMS.TN3 & TCH.ID3 INSERT INTO SSM (SC, SE, ID, PR) SELECT SMS.SC, SMS.SE, TCH.ID3, 0 PrimaryTchr FROM SMS INNER JOIN TCH ON SMS.SC = TCH.SC AND SMS.TN3 = TCH.TN LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.ID = TCH.ID3 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND TCH.TN > 0 AND TCH.ID3 > 0 AND SSM.ID IS NULL
IN 2023-2024 SCHOOL YEAR
Clear out SMS table of Old Scheduling Fields
--Clear out SMS table of Old Scheduling Fields DECLARE @SC int SET @SC = 994 UPDATE SMS SET PD = 0, BL = 0, TN = 0, DY = '', MM = 0, MT = 0, MW = 0, MR = 0, MF = 0, MS = 0 WHERE SC = @SC AND (PD <> 0 OR BL <> 0 OR TN <> 0 OR DY <> '' OR MM <> 0 OR MT <> 0 OR MW <> 0 OR MR <> 0 OR MF <> 0 OR MS <> 0)
IN 2023-2024 SCHOOL YEAR
Some Useful Queries
DECLARE @SC int SET @SC = 994 -- The following lists sections that do not have a Flex Period Assigned: SELECT SMS.SC, SMS.SE, SMS.PD, SMS.FSQ FROM SMS WHERE FSQ = 0 AND SC = @SC -- List Flex Periods in a school: SELECT * FROM FTF WHERE SC = @SC -- List all Section Staff SELECT * FROM SSM -- List Sections without Section Staff SELECT SMS.* FROM SMS LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.DEL = 0 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND SSM.SE IS NULL -- List Sections without a Primary Teacher SELECT SMS.* FROM SMS LEFT JOIN SSM ON SMS.SC = SSM.SC AND SMS.SE = SSM.SE AND SSM.DEL = 0 AND SSM.PR = 1 WHERE SMS.DEL = 0 AND SMS.SC = @SC AND SSM.SE IS NULL