Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem ze sformuowaniem pytania do bazy...
remik86
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 6.10.2010
Skąd: Śląski

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


Witam,
Mam problem z pytaniem do bazy, mianowicie:
Mam dwie tabele: zdarzenia i zdarzenia_opis. Do tabeli zdarzenia wpisywane są logi z pracy urządzenia, tabela wygląda następująco (prezentuje tylko kilka wpisów z kilku tysiecy):
Whenl; Type; Code;
2010-07-05 09:12:30; A; 82-02-00;
2010-09-23 13:35:04; A; 37-20-00;

Do tabeli zdarzenia_opis wpisałem opis tych zdarzen:
Type; Code; Text;
A; 82-00-00; Opis błędu 82-00-00;
A; 82-01-00; Opis błędu 82-01-00;
A; 82-02-00; Opis błędu 82-02-00;
A; 82-03-00; Opis błędu 82-03-00;
A; 37; Opis błędu 37-xx-xx

Do bazy zadaje pytanie:
SELECT a.Whenl, a.Code, b.Text FROM zdarzenia a, zdarzenia_opis b where (a.Type = b.Type) and (b.Code = (a.Code+'*'))

Otrzymuje wynik:
2010-07-05 09:12:30; A; 82-00-00; Opis błędu 82-00-00;
2010-07-05 09:12:30; A; 82-00-00; Opis błędu 82-01-00;
2010-07-05 09:12:30; A; 82-00-00; Opis błędu 82-02-00;
2010-07-05 09:12:30; A; 82-00-00; Opis błędu 82-03-00;
2010-09-23 13:35:04; A; 37-20-00; Opis błędu 37-xx-xx

W tabeli zdarzenia_opis błąd 37 składa się tylko z dwóch cyfr ponieważ reszta to parametry tego błędu.
Jak zadać to pytanie żeby dla błędu 82-00-00 znajdował się tylko prawidłowy opis a jednocześnie znajdował się opis dla błędu 37. Kombinowałem różnymi sposobami z like itp. Ale nigdy to nie działało tak jak powinno.

Może ktoś potrafi mi pomóc, jeżeli coś nie jasno opisałem proszę napisać a postaram się wyjaśnić.
Pozdrawiam i z góry dziękuje
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
pogdan
post
Post #2





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 21.10.2007

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


"Jak zadać to pytanie żeby dla błędu 82-00-00 znajdował się tylko prawidłowy opis a jednocześnie znajdował się opis dla błędu 37."

A coś takiego ?

SELECT a.Whenl, a.Code, b.Text FROM zdarzenia a, zdarzenia_opis b where a.Type = b.Type
and ( a.Code = '82-00-00' or substr(a.Code, 1,2)='37' )

poz

Ten post edytował pogdan 6.10.2010, 19:46:29
Go to the top of the page
+Quote Post
remik86
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 6.10.2010
Skąd: Śląski

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


Cytat(pogdan @ 6.10.2010, 20:45:23 ) *
"Jak zadać to pytanie żeby dla błędu 82-00-00 znajdował się tylko prawidłowy opis a jednocześnie znajdował się opis dla błędu 37."

A coś takiego ?

SELECT a.Whenl, a.Code, b.Text FROM zdarzenia a, zdarzenia_opis b where a.Type = b.Type
and ( a.Code = '82-00-00' or substr(a.Code, 1,2)='37' )

poz


Tak tylko że kodów jest w bazie ponad sto, a te to tylko przykładowe, wiec pytanie nie może być wpisane na "sztywno", tylko uniwersalnie dla wszystkich kodów...
Go to the top of the page
+Quote Post
pogdan
post
Post #4





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 21.10.2007

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


To skoro nie tak to wg mnie pytanie "Jak zadać to pytanie żeby dla błędu 82-00-00 znajdował się tylko prawidłowy opis a jednocześnie znajdował się opis dla błędu 37." Jest złym pytaniem.




Go to the top of the page
+Quote Post
remik86
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 6.10.2010
Skąd: Śląski

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


Cytat(pogdan @ 7.10.2010, 10:04:01 ) *
To skoro nie tak to wg mnie pytanie "Jak zadać to pytanie żeby dla błędu 82-00-00 znajdował się tylko prawidłowy opis a jednocześnie znajdował się opis dla błędu 37." Jest złym pytaniem.


Racja, nie jasno się wyraziłem...
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 - 12:02