Nimetu
(alguspunkt päringule) ning rekursiivne liig (iseendale viitav päring).
Et seda katsetada teeme mõned täiendused oma Laste tabelisse ning lisame sinna uue välja
Rühmajuht ning määrame igale lapsele sobiva juhi:
-- Lisame tabelisse uue välja
ALTER TABLE dbo.Laps_tbl
ADD Ryhmajuht INT NULL REFERENCES dbo.Laps_tbl (LapsID)
GO
-- paneme rühmajuhtideks igas linnas esimese kõige vanemate linnakodanike
hulgast
WITH VanimSynniA AS
( -- Iga linna varaseim sünniaasta
SELECT SynniLinn, MIN(SYNNIAASTA) AS Aasta
FROM dbo.Laps_tbl AS L1
GROUP BY SynniLinn
),
Pealikud AS
( -- esimene väikseima sünniaastaga laps
SELECT L2.SynniLinn, MIN(L2.LapsID) AS LapsID
FROM dbo.Laps_tbl AS L2
INNER JOIN VanimSynniA as VA ON L2.SynniLinn = VA.SynniLinn
AND L2.SynniAasta = VA.Aasta
GROUP BY L2.SynniLinn
)
UPDATE dbo.Laps_tbl
SET Ryhmajuht = P.LapsID
FROM dbo