Hej Jag förstår inte exakt hur du menar men .. större och mindre än går ju bra. Du kan ju köra med BETWEEN(column AND column) oxå .. SELECT kol3 FROM tabell WHERE lLevel<=sökvärde AND uLevel>=sökvärde Hej Hej PO Hej Jag undrar om det är någonting i den här stilen du är ute efter? Hej Åsa Om du använder EXAKT min SQL-kod så är det korrekt att dessa värden inte ger returnerar någon post. Jag är rädd att vi talar om olika saker... Jag vill alltid få en träff i det spann som jag har mitt värde. Om du skriver Ok, se om jag förstått dig rätt.SQL fråga på > eller <
Hur skapar man en Sql fråga som fungerar på en tabell som denna
lLevel uLevel Värden som jag vill komma åt
4.o 4,4 7,3
4,4 10,2 8,5
10,2 10,5 20,3
Värden finns i kolumner efter de första två som jag vill plocka värden ur.
Databasen är Access språket VB
//PASv: SQL fråga på > eller <
Sv: SQL fråga på > eller <
(ev skall nåt semikolon in efteråt - orkar inte testa i Access nu)Sv: SQL fråga på > eller <
Vad som är problemet är att om jag söker med ett värde som ligger mellan lLevel och uLevel så får jag ej något resultat på frågan.
Det är endast lLevel och uLevel som jag kan söka på, de vriga kolumnerna är statiska värden som alldrig förändras. Problemet är att jag ej vet vilket värde jag kommer att söka på så > eller < eller BETWEEN fungerar ej om jag tex söker på värde >4,4 eller < 10,2. Värden som jag vill komma åt är ett tiotal kolumner liknande ex som jag visade.
//PASv: SQL fråga på > eller <
tyvärr är det fortfarande lite svårt att förstå vad du menar...
Du har alltså en tabell med fälten lLevel och uLevel. Sedan har du ytterligare uppgifter för varje post.
Finns de andra uppgifterna sparade i tabellen?
Vill du egentligen söka på de andra uppgifterna?
Vad menar du med att de andra uppgiferna är statiska? Är de beräknade?
/Åsa HSv: SQL fråga på > eller <
De övriga uppgifterna finns inlagda i de 10 ytterliggare kolumnerna.
Dessa kolumner vill jag ha datat ifrån.
Mitt problem är att hämta datat från rätt rad med det värde jag har att söka med.
Ex på fråga
SELECT a44 FROM tbl WHERE lLevel>=27.9 And uLevel<=28.1;
eller
SELECT a44 FROM tbl WHERE lLevel>=27.9;
a44 är en av de 10 kolumnerna som jag vill ha datat ifrån.
Alla frågor retunerar null om min fråga hamnar i ett gap tex i detta fall
lLevel uLevel a44
4.o 4,4 7,3
4,4 10,2 8,5
10,2 10,5 20,3
27 28,5 19,3
//PASv: SQL fråga på > eller <
SELECT a44 FROM tbl WHERE (lLevel Between 27.9 And 28.1) OR (uLevel Between 27.9 And 28.1);
Med den frågan får du träff om endera värdet i lLevel är mellan 27,9 och 28,1 ELLER värdet i uLevel är mellan 27,9 och 28,1.
/Åsa HSv: SQL fråga på > eller <
Får ingen träff om jag söker på tex lLevel=27,1 uLevel=27,4 med din kod
Tack för ditt försök
//PASv: SQL fråga på > eller <
Utifrån tidigare inlägg antog jag att du ville söka efter poster där värdet i endera lLevel ELLER uLevel befinner sig inom ett spann t.ex. mellan 27,8 och 28,1. Det är vad som returneras av min SQL-kod.
Gör gärna ytterligare ett försök att förklara vad ut är ute efter ;-)
/ÅsaSv: SQL fråga på > eller <
Det är ju det som är mitt problem.
Jag vet ej vad spannet är i frågan, men vill få en träff med mitt värde.
Jag kan även söka med ett exakt värde men det gör ju inte saken lättare.
tex
SELECT a44 FROM tbl WHERE lLevel=27,2;
Detta funkar inte utan är bara för att visa.
//PASv: SQL fråga på > eller <
SELECT a44 FROM tbl WHERE lLevel = 27,2;
och det inte finns någon post i tabellen där lLevel är just 27,2 så returneras ju ingen post. Så långt är vi överens ;-) Vad skulle du vilja att din kod gör då?
Eller som i ditt tidigare exempel där du skickade med en exempeltabell.
SELECT a44 FROM tbl WHERE lLevel>=27,9 And uLevel<=28,1;
I din exempeltabell finns ingen post där lLevel är större eller lika med 27,9 eftersom största värdet är 27. Däremot finns flera poster där uLevel är mindre eller lika med 28,1. Frågan returnerar ingen post eftersom båda villkoren måste vara uppfyllda iochmed att du har skrivit "And".
SELECT a44 FROM tbl WHERE lLevel>=27,9 Or uLevel<=28,1;
hade returnerat de första tre posterna i din exempeltabell.Sv: SQL fråga på > eller <
Det här är din tabell.
<code>
lLevel uLevel a44
4.o 4,4 7,3
4,4 10,2 8,5
10,2 10,5 20,3
27 28,5 19,3
</code>
Du har ett sökvärde och vill ha ut a44 från den rad där ditt sökvärde ligger i intervallet ILevel - uLevel?
Rätt så långt?
I så fall:
<code>
SELECT a44
FROM tbl
WHERE ILevel <= sökvärde
AND uLevel >= sökvärde
</code>
Jag kan inte se att det är svårare än så.
Då skickar du in ett sökvärde, sql-satsen kollar om värdet är mellan I och U och returnerar a44 där det stämmer. Om jag t.ex. skickar in 10,3 så får jag tillbaka a44 = 20,3.
Däremot så får du två resultat om du skickar in 4,4 (a44 = 7,3 och 8,5) eftersom dina intervall går in i varandra.
Om du inte får några resultat så kontrollera om du använder . eller ,
/pD
www.pdc.se
www.pdc.se/blog
www.patrik-dahlen.nu