Jag vill plocka ut alla artiklar som har ett specifikt fältvärde inom ett visst intervall för en av dess fält.
Säg att jag söker på 3800 på fält F1. Då vill jag att båda artiklarna skall visas då 3700 är inom intervallet 3900+/-200 samt 3900+/-400.
Men om jag söker på 3600 på fält F1. Då vill jag att enbart artikel A2 skall visas då den är inom intervallet. Alltså A1 har intervallet 3700-4100 och är inte inom intervallet.
Med följande SQL har jag lyckats plocka ut just den raden som stämmer när det är tolerans men jag vill ha ut alla fält för den artikeln där de fält man söker på stämmer med sökkriterierna.
select * from tbl_testar T1
join tbl_testar T2 on T1.ToleransFältId= T2.FältId and T1.ArtikelId = T2.ArtikelId
where (3700 between (T1.Värde - T2.Värde ) and (T1.Värde + T2.Värde)) ;
Finns det en egen artikel/vara för varje toleransnivå? Annars borde du kanske se till att göra en många till en relation mellan toleranserna till artikel/vara. Eller. vad vill du göra egentligen..?
Grejen är den att det behöver inte finnas ett toleransfält för en artikel och man ska kunna koppla på andra saker som gör att ett fält är "beroende" av ett annat. Toleransfältet är i sig annars en del av artikeln.
Men... varför kopplar du inte saker via ArtikelID i så fall..?
Ok men om jag gör de så har jag fortfarande samma problem. Jag får bara ut exakt den raden som stämmer. Jag vill ha ut alla fält för de artiklar vars fält stämmer när man söker på dem.
Alltså man kan söka på 3 fält men vill ändå ha ut alla fält för de artiklar som faller inom urvalet?
Jaja, du frågade ju inte om lämplig tabellstruktur.
Jag utgår ifrån att T1.värde är normalen i sökningen och att T2.värde är variansen. Vad ger WHERE T1.Värde BETWEEN (T1.Värde - T2.värde) AND (T1.Värde + T2.värde)
Det är exakt det jag gjort i SQL-exemplet jag postade i första inlägget?
Mja, då har du skrivit fel. 3700 etc...
I alla fall, det är din tabellstruktur som ställer till det för dig om du inte får ut alla rader med T1 +- T2. Får du inte ändra på tabellerna..?
Mja, då har du skrivit fel. 3700 etc...
I alla fall, det är din tabellstruktur som ställer till det för dig om du inte får ut alla rader med T1 +- T2. Får du inte ändra på tabellerna..?
Alltså när jag kör min SQL-sats får jag bara ut första raden (i mitt exempel) när jag vill ha ut de tre översta. Själva SQL-satsen måste byggas om men jag förstår inte hur.
Jag kanske måste ställa två frågor. Ett där jag får ut alla artiklar som finns inom variansen samt vanliga SQL-kriterier på fält som inte har varians och sen en till fråga för att hämta alla afält för alla artiklar som stämmer. Är du med?
Jag kan inte bygga om databasen då den inte blir tillräckligt dynamisk då. Svårt att förklara men så är det.
268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e