"Jan Emil Christiansen" <janemil@hotmail.com> skrev:
> Jeg vil gerne selecte følgende:
> Hvilke lejemål har kunde 2105751853 haft i perioden 1.maj 2000
> til 1.maj 2002?
Kundenummeret findes vel i lejetabellen som fremmednøgle? Det kan
klares med en almindelig SELECT fra én tabel:
SELECT <hvad-du-skal-bruge> FROM leje_t
WHERE lid = 2105751853
AND dato BETWEEN <dato1> AND <dato2>
Jeg går ud fra at lid indeholder kundenumre -og at de er formateret
som numre, ikke tekst (ellers skal nummeret i anførselstegn).
Det ser i øvrigt ud som om du har lavet et tredelt datofelt - dag,
måned, år. Det virker ikke umiddelbart logisk - du kan altid trække
de værdier ud fra en dato, men hvis du ikke har et egentligt
datofelt, bliver datodelen af ovenstående forespørgsel langt mere
besværlig end nødvendigt.
> Hvilke og hvor mange lejemål har køretøjet med regnr SH48428
> været involveret i?
Hvis regnr er primærnøgle i koretoj_t, så står den værdi du skal
bruge også direkte i leje_t.
For at finde lejemålene:
SELECT <hvad-du-skal-bruge> FROM leje_t
WHERE [oid-koretoj] = 'SH48428'
For at finde antallet:
SELECT COUNT(*) FROM leje_t
WHERE [oid-koretoj] = 'SH48428'
> Men generelt alt, der kan få data "op" fra leje eller kob vil
> jeg MEGET gerne se.
Så længe du kun skal bruge data fra en enkelt tabel, laver du bare
et direkte select på den.
Hvis du f.eks. skal have kundenavnet med i din forespørgsel skal du
benytte JOIN:
For at finde alle lejemål med køretøjer hvis salgspris er mindst
200.000,-
SELECT <feltliste>
FROM leje_t l INNER JOIN koretoj_t k
ON l.[oid-koretoj] = k.regnr
WHERE k.salgspris >= 200000
PS: Det er ikke så smart at benytte bindestreg ("-") i objektnavne,
fordi bindestregen i SQL også betyder minus. Skriver man
oid-koretoj skal det derfor læses oid minus koretoj, og ikke som
man eller kunne tro som ét felt - oid-koretoj. Ved at omkranse
objektnavnet med [] (gælder for SQL-server, men jeg tror at det er
gængs standard) kan man tvinge programmet til at læse den slags
navne, men det er bedre helt at undgå dem.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO -
www.fiduso.dk)