Nimetu
Rekursiivsed SQL päringud olid
ka põhiline idee CTE loomise taga.
Rekursiivse päringu loomiseks tuleb CTE tekitada UNION päringu abil, milles on kaks liiget ankur
(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