![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 6.10.2010 Skąd: Śląski 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 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... |
|
|
![]()
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.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 6.10.2010 Skąd: Śląski Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 12:02 |