Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Podzapytanie i null
Forum PHP.pl > Forum > Bazy danych > Oracle
diska
Witam, mam takie zapytanie:

  1. select distinct z.zadid, z.system, z.nazwa , s.statid
  2. from zad z
  3. left outer join stat s on z.zadid=s.zadid
  4. where z.zadid='260'
  5. and s.statid= (SELECT MAX(statid)from zad z left join stat s on s.zadid=z.zadid where s.zadid='260') ;
  6. order by s.statid desc;



Moje podzapytanie dla zadid=260 zwraca null
  1. (SELECT MAX(statid)from zad z left join stat s on s.zadid=z.zadid where s.zadid='260')

i tak ma być => jest ok

Jeżeli zadid=123 , to statid nie jest NULL , więc
zapytanie główne zwraca mi przykładowe dane dla tego zadid, w takiej formie:

Zadid / system / nazwa / statid => nazwa kolumn
--------------------------------
1 / xxx / yyy / 123 => wynik podzapytania


natomiast gdy wywołuje to zapytanie dla statid, które jest NULLem,
główne zapytanie nie zwraca mi nic ,

a powinno:


Zadid / system / nazwa / statid => nazwa kolumn
--------------------------------
1 / xxx / yyy / null => wynik podzapytania

Czy ktoś może poradzić, jak zmodyfikować zapytanie ? dziękuje z góry.
luckyps
Powinno byc cos w ten desen...
  1. AND (s.statid= (SELECT max(statid) FROM stat s WHERE s.zadid='260') OR s.statid IS NULL)

podzapytanie w Twoim zapytaniu zwracalo null a porownanie w ten sposob zawsze bedzie nieprawdą wiec slusznie Twoje zapytanie nic nie zwróciło.

Kluczem rozwiazania jest:
  1. OR s.statid IS NULL
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.