ďťż
 
Da się tak wogóle ? ďťż
 
Da się tak wogóle ?
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Da się tak wogóle ?



Dentarg - 11-11-2006 00:54
Da się tak wogóle ?
  Wybaczcie jeśli pytam o głupotę, ale spałem 2,5h i jakoś nie mogę
sklecić tego zapytania :).

Dane siedzą w takich tabelach:

TABLE jednostki (
id_jednostki smallint NOT NULL
PRIMARY KEY,
id_jednostki_nadrzednej smallint
REFERENCES jednostki(id_jednostki),
nazwa_jednostki varchar(80) NOT NULL,
skrocona_nazwa_jednostki varchar(10) NOT NULL,
kod_pocztowy_jednostki char(5) NOT NULL,
miasto_jednostki varchar(40) NOT NULL,
ulica_jednostki varchar(40) NOT NULL,
telefon_jednostki varchar(15),
jednostka_aktywna boolean NOT NULL
DEFAULT ('y')
);

TABLE komorki (
id_komorki smallint NOT NULL
PRIMARY KEY,
nazwa_komorki varchar(80) NOT NULL,
skrocona_nazwa_komorki varchar(10) NOT NULL,
komorka_aktywna boolean NOT NULL
DEFAULT ('y')
);

TABLE komorki_jednostek (
id_komorki smallint NOT NULL
REFERENCES komorki(id_komorki),
id_jednostki smallint NOT NULL
REFERENCES jednostki(id_jednostki),
komorka_jednostki_aktywna boolean NOT NULL
DEFAULT ('y'),
CONSTRAINT unique_kom_jedn UNIQUE (id_komorki, id_jednostki)
);

Chcę się dowiedzieć w ilu jednostkach występuje dana komórka, z
uwzględnieniem komórek, które nigdzie nie występują. I przy tym
ostatnim warunku legne.

Na razie wymyśliłem tyle:

select k.id_komorki, k.nazwa_komorki, count(kj.id_jednostki) AS ile
from komorki k, komorki_jednostek kj
where kj.id_komorki=k.id_komorki
group by k.id_komorki, k.nazwa_komorki order by k.nazwa_komorki;

Dostaje to co chce, ale komórek występujących zero razy nie ma :(. Jak
je uwzględnić w zapytaniu ?

pzdr,
Dentarg

--
Moje CV online - http://dentarg.it64.com
Warcraft2 - http://warcraft2.it64.com





Paweł Matejski - 11-11-2006 00:54

  Dentarg wrote:
>
> Chcę się dowiedzieć w ilu jednostkach występuje dana komórka, z
> uwzględnieniem komórek, które nigdzie nie występują. I przy tym
> ostatnim warunku legne.
>
> Na razie wymyśliłem tyle:
>
> select k.id_komorki, k.nazwa_komorki, count(kj.id_jednostki) AS ile
> from komorki k, komorki_jednostek kj
> where kj.id_komorki=k.id_komorki
> group by k.id_komorki, k.nazwa_komorki order by k.nazwa_komorki;
>
> Dostaje to co chce, ale komórek występujących zero razy nie ma :(. Jak
> je uwzględnić w zapytaniu ?

Użyj LEFT JOIN.

--
P.M.




den@it64.com - 11-11-2006 00:54

  > Użyj LEFT JOIN.
Myślałem na tym oczywiście, ale nie mogłem nic wymyslić ;).
Powinno być tak (???):

select k.id_komorki, k.nazwa_komorki, k.skrocona_nazwa_komorki,
count(kj.id_komorki), k.komorka_aktywna from komorki k left join
komorki_jednostek kj on k.id_komorki=kj.id_komorki group by
k.id_komorki, k.nazwa_komorki, k.skrocona_nazwa_komorki,
k.komorka_aktywna order by k.nazwa_komorki;

??
Wynik zapytania wygląda obiecująco :)).

--
pzdr,
Dentarg
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    =?iso-8859-2?Q?zmniejszenie_rozdzielczo=B6ci_zdj=EA=E6?= LDAP + odbc +PostgreSQL Zapytanie SQL w zaleznosci od parametrow w bazie danych [MSSQL] Identity wspólne dla paru tabel EyeOne Display 2 vs Spyder 2PRO Kwerenda Ksiazka ? Szukasz inwestora do serwisu Jasper [mysql] licznik dzienny
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • lubiatowo.xlx.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com