06. juli 2006 - 14:51Der er
5 kommentarer og 1 løsning
Hjælp til SQL-sætning
Jeg har en tabel, der kunne se ud som følger (rækkenr er ikke en del af tabellen, men benyttes blot som forklaring senere):
rækkenr type prioritet værdi 1 1 1 x 2 2 1 y 3 3 1 z 4 4 2 w 5 1 2 q
Jeg vil nu gerne vælge en værdi for hver eneste type (altså en værdi for type = 1/2/3/4). Hvis der findes en type/værdi som har prioritet 1, vil den være at foretrække fremfor én med prioritet 2. Jeg vil altså gerne have valgt række 1, 2, 3 og 4, da jeg her har én af hver type, og de har alle prioritet 1 (med undtagelse af række 4 som har typen 4, som ikke findes med prioritet 1). Række 5 vælges ikke, da række 1 i stedet er valgt, da denne også har type 1 men prioritet 1.
Jeg vil med andre ord gerne have følgende output fra min forespørgsel:
Nej, der kan ikke være mere end en række med samme type og prioritet.
Super, Arne! Det virker - hvis tabellen er nøjagtig som beskrevet ovenfor. Eksemplet ovenfor er naturligvis blot en simpel udgave af det virkelige problem, men skulle nok selv kunne klare de fleste joins. Men prioriteten betyder ikke altid, at en mindre prioritet er at foretrække. Så jeg vil gerne kunne sige i hvert enkelt tilfælde, at nu er 1 bedre end 2, nu er 12 bedre end 4 osv - og så virker MIN(prioritet) ikke helt :-(
Hvis jeg ønsker at finde alt med prioritet 1, vil jeg samtidig gerne finde alt med prioritet 2, hvor det med prioritet 1 "overskygger" det med prioritet 2 - altså får man værdien fra prioritet 1, hvis begge har samme værdi. Det var sådan set mit første eksempel.
Et andet eksempel er, hvis jeg ønsker at finde alt med prioritet 2, vil jeg få følgende svar:
type prioritet værdi 4 2 w 1 2 q
Dette skyldes, at prioritet 2 er den mindst betydende - og vi skal derfor ikke hente andre værdier ud, end dem der står ved prioritet 2.
Kan jeg på en eller anden måde joine med min tabel hvor prioriteterne er beskrevet?
Problemet er nu løst - omend det ikke skete på nogen specielt elegant måde :-S
Synes godt om
Ny brugerNybegynder
Din løsning...
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.