Jeg er stødt på et problem med en trigger.
I et annoncesystem er der bl.a. følgende tabeller:
Medlemsannoncer:
annID (primærnøgle)
perID (periodeID, fremmednøgle til perioder)
slutdato
...
AnnoncePerioder
perID
perNavn (navn på perioden - pt. 2 værdier: 1 nummer/3 numre
Udgivelser
uID (nøgle)
navn
udgivelsesdato
annoncedeadline
stopdato
Når man indtaster en annonce skal slutdatoen beregnes af triggeren
ud fra perioden. Hvis perioden er 1 nummer (af et trykt blad), kan
slutdatoen findes i feltet stopdato i udgivelsestabellen - det er
ikke noget problem at få fat i. Men, når perioden er mere end 1
nummer, skal jeg finde stopdatoen for den udgivelse der ligger x
gange frem. Med perioden 3 numre er det således post nr 3 der skal
findes.
Jeg kan nemt finde de tre numre en annonce skal tilknyttes - det
ser således ud:
SELECT TOP 3 *
FROM udgivelser
Where annoncedeadline > getdate()
order by udgivelsesdato
Her skulle jeg så kunne vende postsættet og bare fiske nr. 1 ud -
men det kan jeg ikke finde ud af. Hvis det ikke var for
sorteringen, kunne jeg lave ovenstående select til et view, og så
trække den største værdi af stopdato ud herfra. Men et view kan jo
ikke indeholde sortering.
Jeg kan heller ikke bare pakke select-sætningen ind i parenteser og
vende sorteringen på den måde:
SELECT TOP 1 * FROM (
<selectsætningen ovenfor>
)
ORDER BY udgivelsesdato DESC
Gode forslag modtages med kyshånd.
--
Jens Gyldenkærne Clausen
Greenwich nedrig gang: Ny Delhi (GMT +5.5), Badutspring By (GMT
+2), Ny York (GMT 5), Høns (GMT 6), Los Engel (GMT 8)
(Fra <
http://www.paris-tours-guides.com/index_danish.shtml>)