18. august 2003 - 13:28Der er
15 kommentarer og 1 løsning
Kriterier i forespørgsel
Jeg har en database over fisketurer og fangstrapporter og vil gerne lave en rekordliste over alle de forskellige arter. Jeg har lavet en forespørgsel udfra tabellen "Fangster", hvor jeg godt kan få den til at vise max-vægten for hver art, men hvis jeg skal have den til at vise datoen og evt. vandet hvor fisken er fanget, får jeg flere resultater. Kan man lave ovenstående forespørgsel, hvor den så bare "viser" f.eks. fangst_id, dato og vand, således at den ikke "beregner" forespørgslen på fangst_id, dato og vand, men kun på art og vægt? Håber det er til at forstå, ellers må jeg prøve igen.
Du skal -i stil med http://www.eksperten.dk/spm/387722 15/08-2003 08:27:43 først lave et query, som giver dig præcis de rækker, du skal bruge. Efterfølgende joiner du dette med de ekstra-oplysninger, der skal på. Er du med/har jeg misforstået?
staticdata Jeg ved ikke hvordan jeg skal joine dem! Her er en lidt bedre forklaring på hvad det er jeg vil. Jeg har en tabel "Fangster" med følgende rækker: Fangst_id Art Vægt Længde Dato Medlem
Nu vil jeg gerne kunne lave en rekordliste med alle informationerne. Jeg har lavet en forespørgsel, hvor jeg godt kan få den største vægt for hver art, men uden Fangst_id, Længde, Dato og Medlem, hvordan gør jeg det?
Er der ingen so kan hjælpe med at få lavet en rekordliste som beskrevet ovenfor? Problemet er at, jeg har en tabel "fangster" med fangst_id, art, vægt, længde og medlem. Når jeg laver en forespørgsel med alle felter og vælger "maks" ved vægt, får jeg alle fangsterne. Kan man få en forspørgsel til at "ignorere" et felt f.eks. fangst_id så man kun ser hvilket Fangst_id den størte af hver art har?
SELECT TOP 1 fangster.art, fangster.vægt,fangster.længde,fangster.medlem FROM fangster WHERE (((fangster.art)="laks")) ORDER BY fangster.vægt DESC UNION
SELECT TOP 1 fangster.art, fangster.vægt,fangster.længde,fangster.medlem FROM fangster WHERE (((fangster.art)="sild")) ORDER BY fangster.vægt DESC UNION
SELECT TOP 1 fangster.art, fangster.vægt,fangster.længde,fangster.medlem FROM fangster WHERE (((fangster.art)="torsk")) ORDER BY fangster.vægt DESC UNION
SELECT TOP 1 fangster.art, fangster.vægt,fangster.længde,fangster.medlem FROM fangster WHERE (((fangster.art)="bækørred")) ORDER BY fangster.vægt DESC UNION
SELECT TOP 1 fangster.art, fangster.vægt,fangster.længde,fangster.medlem FROM fangster WHERE (((fangster.art)="ørred")) ORDER BY fangster.vægt DESC UNION SELECT TOP 1 fangster.art, fangster.vægt,fangster.længde,fangster.medlem FROM fangster WHERE (((fangster.art)="bækørred")) ORDER BY fangster.vægt DESC;
Prøv at åbne en ny forespørgsel uden tabeller, og i SQL vinduet kopierer du dette ind. Du skal dog kontrolle, at artsnavnet er stavet på samme måde som i din db
Jeg har ikke mulighed for at afprøve det nu, da jeg er på arbejdet, men vil prøve det i aften eller i morgen. Har det nogen betydning at når jeg opretter en ny fangst så vælger jeg arten i en combobox som er baseret på en tabel "arter"? Skal jeg f.eks. hvis der bliver fanget en ny art så ind og skrive et nyt stykke kode for den nye art?
Jeg har også lavet det med en combo, idet det er afgørende, at artesnavnet altid staves ens.
Skal jeg f.eks. hvis der bliver fanget en ny art så ind og skrive et nyt stykke kode for den nye art?
JA
Men det gør f.eks ikke noget, at du har arter i SQL, som der endnu ikke er fanget. Hvis du f.eks tilføjer "fjæsing" i ovenstående kode uden der er fangster, vil arten blot ikke vises i forespørgslen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.