Я делаю сценарий тестирования
6 человек на каждом сайте
Site 1 - A, B, C, D, E, F
Site 2 - G, H, I, J, K, L
Site 3 - M, N, O, P, Q, R
Site 4 - S, T, U, V, W, X
Я хочу написать запрос, который может предложить мне по дате людей, которые могут проверить сайт - по два за раз. Вот правила:
Правило 1: Если человек проверял свой сайт в 1-й день, то его ход должен приходить на 4-й день, а не раньше - ПРИМЕНИМО ТОЛЬКО НА ТЕКУЩУЮ НЕДЕЛЮ. Таким образом, если A и D протестируют сайт 22-го, B и E - 23-го, а C и F - 24-го, то за эту неделю A и D могут протестировать сайт только 25-го. Воскресенье - праздник
Правило 2: Каждую неделю пара должна меняться. Правило 1 все еще применимо к новой паре.
Правило 3: Лицо, принадлежащее к определенному сайту, не может проверять другие сайты.
В запросе я должен быть в состоянии
позже поменяю пару из 2 человек
и сделать их по 3 человека за раз или
увеличить количество людей на каждом сайте с 6 до 10, с
несколько изменений в коде.
ОБРАЗЦЫ ДАННЫХ
DECLARE @Site TABLE
(
SiteID int,
SiteNm varchar(10)
)
DECLARE @Person TABLE
(
PersonID int,
PersonName char(1),
SiteID int
)
INSERT @Site
SELECT 1, 'Site1' UNION ALL
SELECT 2, 'Site2' UNION ALL
SELECT 3, 'Site3' UNION ALL
SELECT 4, 'Site4'
INSERT @Person
SELECT 1, 'A', 1 UNION ALL
SELECT 2, 'B', 1 UNION ALL
SELECT 3, 'C', 1 UNION ALL
SELECT 4, 'D', 1 UNION ALL
SELECT 5, 'E', 1 UNION ALL
SELECT 6, 'F', 1 UNION ALL
SELECT 7, 'G', 2 UNION ALL
SELECT 8, 'H', 2 UNION ALL
SELECT 9, 'I', 2 UNION ALL
SELECT 10, 'J', 2 UNION ALL
SELECT 11, 'K', 2 UNION ALL
SELECT 12, 'L', 2 UNION ALL
SELECT 13, 'M', 3 UNION ALL
SELECT 14, 'N', 3 UNION ALL
SELECT 15, 'O', 3 UNION ALL
SELECT 16, 'P', 3 UNION ALL
SELECT 17, 'Q', 3 UNION ALL
SELECT 18, 'R', 3 UNION ALL
SELECT 19, 'S', 4 UNION ALL
SELECT 20, 'T', 4 UNION ALL
SELECT 21, 'U', 4 UNION ALL
SELECT 22, 'V', 4 UNION ALL
SELECT 23, 'W', 4 UNION ALL
SELECT 24, 'X', 4
Вот как я хочу вывод:
Date Site 1 Site 2 Site 3 Site 4
22Jun A,D H,I N,R T,W
23Jun B,E J,K M,P V,X
...
26Jun A,D H,I N,R T,W
...
29Jun F,A K,L R,Q W,U
и т. Д.
Можете ли вы помочь мне с запросом?
В запросе я должен быть в состоянии
позже поменяю пару из 2 человек
и сделать их по 3 человека за раз или
увеличить количество людей на каждом сайте с 6 до 10, с
несколько изменений в коде. Я хочу эту гибкость