Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wybieranie pola z tolerancja
Kinool
post
Post #1





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


stoje przed pewnym zdaniem smile.gif mam tabele z charajterystyka pewych urzadzen, jednym z pol jest wydanosc, prosta wyszukiwarka ma wyszukiwac po wydajnosc (podanej przez uzytkownika) tu zadnych problemow smile.gif ale musze zrobic zaawansowana wyszukiwarke w ktorej bedzie sie wybieralo specychiczne warunki pracy (temperature, wilgotnosc itp.) z innych tabel pobieram wspolczynniki korekcji dla tabeli glownej np. dla temp. -10C i wilgotnosci 89% wspolczynnik wynosi 0,78, w podobny sposob wymieram inne wspolczynniki i wychodzi mi powiedzmy wzor:
szukana_wydajnosc = wydajosc*wspolczynnik1*wspolczynnik2

no i z tym tez by nie bylo problemu smile.gif ale wyszukiwac ma z toleranca +-15% czyli z tabeli urzadzenia ma znalezc wszystkie rekordy dla ktorych wydajnosc = szukana_wydajnosc+-15% i tu pojawia sie problem sad.gif

nie chce robic tak ze najpierw pobieram wszystkie wydajnosci i trzymam je w jakiejs tablicy w php potem przeprowadzac na nich operacje i przeszukiwac na ich podstawie bazy bo malo do elegancie i wydajne, wiec kombinuje z pobraniem tego z jednego zapytania (tzn wspolczynniki korekcyjne pobieram odzielnie i podstawiam do glownego zapytania)


wszystko mi dziala do momentu gdy musze pobrac te +-10% sad.gif

zapytanie wyglada mnijwiecej tak:
  1. SELECT *
  2. FROM urzadzenia WHERE sc2 BETWEEN ((sc2*1241*950)-300) AND ((sc2*1241*950)+300) ORDER BY typ, model


sc2 - to wydajnosc (liczba calkowita)
1241 i 950 - to wspolczyniki korekcyjne

+-300 to na stala przypozadkowana tloerancja (wlasnie z tym jest problem bo chialbym uzyc 10% sc2

probowalem czegos takiego ((sc2*1241*950)-((sc2/100)*15)) ale to nie dziala sad.gif


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
AxZx
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


takie cos nie dziala?
((sc2*1241*950)-(sc2*0,15)) AND ((sc2*1241*950)+(sc2*0,15))


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
Kinool
post
Post #3





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


niestety ale to nie dziala


--------------------
Go to the top of the page
+Quote Post
popo
post
Post #4





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 15.07.2005

Ostrzeżenie: (0%)
-----


  1. SELECT *
  2. FROM urzadzenia WHERE sc2 > ((sc2*1241*950)-300) AND sc2 < ((sc2*1241*950)+300)
  3. ORDER BY typ, model
Go to the top of the page
+Quote Post
Kinool
post
Post #5





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


@popo twoja metoda niczym nie rozni sie od BETWEEN, juz nie wazne w jaki sposob bede ograniczal zakres dolny i gory ale chodzi o uzyskanie tolerancji w zapytaniu (dynamicznie w zaleznosci od wartosci sc2)


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 15:06