SQL i MSS2000
Jarod - 20-01-2006 20:23
SQL i MSS2000
Heyka Mam 3 tabele: Jobs table jobID jobname
JobQuestion id jobID questionID points
Question questionID questionText
Potrzebuje zrobic takie zapytanie ktore, wyrzuci mi wszystkie Job.Name i odpowiadajace im Points z JobQuestion , nawet jesli Points sa NULL. Na podstawie QuestionID. Z tym, ze praktycznie w tabeli JobQuestion wystepuje b.malo wierszy wiec, wiekszosc zlaczen bedzie zwracalo NULL. I tu jest moj problem, nie moge tego zmusic, zeby wyswietlilo wszystkie Job.Name i odpowiadajace im ( albo null-e ) Points , nawet jesli uzywam LEFT i RIGHT join to nadal nie dziala.
Ogolnie to moj SQL wyglada jakos tak:
SELECT Job.Name , JobQuestion.Points FROM JobQuestion RIGHT JOIN Job ON Job.JobId = JobQuestion.JobId RIGHT JOIN Question ON Question.QuestionID = JobQuestion.QuestionID WHERE Question.QuestionID = 1
Kiedy to uruchamiam to zwraca mi 1 wiersz ktory istnieje, w tabeli JobQuestion i jest uzywany w zlaczeniu. Jesli nie ma niczego co mozna uzyc w zlaczeniu to nic nie jest zwracane. Co robie zle ? Ktos moze mi pomoc poprawic ten SQL ? Z gory thx. Jarod
Andrzej J. Turowicz - 20-01-2006 20:24
Ja uzywam pewnej sztuczki
W Ms Access tworze nowe Query za pomoca Nowa kwerenda
Gdy juz mam i jestem zadowolony z wyniku, sortowania i warunków to SQL tej komendu do showha i ide do projektu SQL
Wogóle nie umiem Lefo czy innych Joinów czy innerów Access umie i to mi wystarczy
Czasem jedynie musze lekko poprawic skladnie lub wymienic " na ' to znaczy inne apostrofy
Pozdrawiam Andrzej
Uzytkownik "Jarod" <blueice@NOSPAM.gazeta.pl> napisal w wiadomosci news:dqol41$rou$1@news.onet.pl... > Heyka > Mam 3 tabele: > Jobs table > jobID > jobname > > JobQuestion > id > jobID > questionID > points > > Question > questionID > questionText > > Potrzebuje zrobic takie zapytanie ktore, wyrzuci mi wszystkie Job.Name i > odpowiadajace im Points z JobQuestion , nawet jesli Points sa NULL. Na > podstawie QuestionID. Z tym, ze praktycznie w tabeli JobQuestion wystepuje > b.malo wierszy wiec, wiekszosc zlaczen bedzie zwracalo NULL. I tu jest moj > problem, nie moge tego zmusic, zeby wyswietlilo wszystkie Job.Name i > odpowiadajace im ( albo null-e ) Points , nawet jesli uzywam LEFT i RIGHT > join to nadal nie dziala. > > Ogolnie to moj SQL wyglada jakos tak: > > SELECT Job.Name , JobQuestion.Points > FROM JobQuestion RIGHT JOIN Job ON Job.JobId = JobQuestion.JobId RIGHT > JOIN > Question ON Question.QuestionID = JobQuestion.QuestionID > WHERE Question.QuestionID = 1 > > Kiedy to uruchamiam to zwraca mi 1 wiersz ktory istnieje, w tabeli > JobQuestion i jest uzywany w zlaczeniu. Jesli nie ma niczego co mozna uzyc > w zlaczeniu to nic nie jest zwracane. Co robie zle ? Ktos moze mi pomoc > poprawic ten SQL ? Z gory thx. > Jarod
Grzegorz Danowski - 20-01-2006 20:24
Uzytkownik "Jarod" <blueice@NOSPAM.gazeta.pl> napisal w wiadomosci news:dqol41$rou$1@news.onet.pl... (...) > Potrzebuje zrobic takie zapytanie ktore, wyrzuci mi wszystkie Job.Name i > odpowiadajace im Points z JobQuestion , nawet jesli Points sa NULL. Na > podstawie QuestionID. Z tym, ze praktycznie w tabeli JobQuestion wystepuje > b.malo wierszy wiec, wiekszosc zlaczen bedzie zwracalo NULL. I tu jest moj > problem, nie moge tego zmusic, zeby wyswietlilo wszystkie Job.Name i > odpowiadajace im ( albo null-e ) Points , nawet jesli uzywam LEFT i RIGHT > join to nadal nie dziala. (...)
Spróbuj przeniesc warunek Where do subselekta, bo tak jak teraz odfiltrowuje nulle (moze wystarczy zmienic Where na: Where Question.QuestionId = 1 Or QuestionId Is Null):
Select J.Name, JQ.Points From Job As J Left Join (Select JobId, Points From JobQuestion Where Q.Question = 1) As JQ On J.JobId = JQ.JobId
Pozdrawiam Grzegorz
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
=?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
=?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plshutter.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|