SQL SELECT beznadej

Vladimír Vlach vladimir.vlach na pcnet.cz
Pátek Červenec 23 10:34:31 CEST 1999


> > > 	SELECT zakaznik.jmeno, count(*)
> > > 	FROM zakaznik, odbery
> > > 	WHERE zakaznik.jmeno = odbery.jmeno_zakaznika
> > > 	GROUP BY zakaznik.jmeno
> > > 
> > > Tohle seskupi nalezene zaznamy podle zakaznik.jmeno a 
> count(*) je pak
> > > spocitano vzdy v ramci te skupiny.
> > 
> > To funguje tak jak ma! Super! Trochu jsem si s tim i hral, ale 
> > co zaznamy u zakazniku, kterym se nic neprodalo. Nevyhodi 
> to ani 0, coz
> > samozrejme chapu, kvuli te podmince WHERE.
> > Slo by to nejak obejit?
> 
> No, pokud bychom tam dali pouze outer join, tak by nam to u tech, kde
> neni nic, dalo jednicku. Takze nejlepsi bude pouzit UNION ALL a k tomu
> vyse uvedenemu selectu prihodit ta jmena, u kterych zadny pohyb v te
> zavisle tabulce neni.

Ano opet dalsi pokrok a pouceni. Chvili mi to trvalo pochopit co znamena
UNION ALL a jak se pouziva. Pochopil jsem to tak, ze to spoji dva
selecty
do 1 vyberu.
Nyni to mam asi takto:
SELECT zakaznik.id, zakaznik.jmeno, count(*)
FROM zakaznik, odbery
WHERE zakaznik.jmeno=odbery.jmeno_zakaznika
GROUP BY zakaznik.id, zakaznik.jmeno
UNION ALL
SELECT zakaznik.id, zakaznik.jmeno, '0' FROM zakaznik, odbery;

Pridal jsem vypis sloupcu, ktere potom budu chtit videt, coz na
tomto priklade nevadi.
Ted mi to dela to, ze mi to vybere nasledujici:
id|jmeno           |count
--+----------------+-----
 1|pepa            |    4
 2|josef           |    3
 1|pepa            |    0
 2|josef           |    0
 3|vlada           |    0
 4|honza           |    0
(6 rows)

Je videt, ze nepred vyselectuje to co ma, ale potom je jeste priradi
i kdyz by je uvadet nemel.
Jak tedy zamezit tomu, aby se uz vypsane zaznamy nevypisovali ?
Vim, ze mi to v mem pripade chybi, ale nevim jak na to...

Dekuji
Vlada Vlach
--<PRE>
+=-=-=-=-=/ // /-=-=-=-=-=-=-=-=-+-=-=-=-=-=-+---------------------+
|        / // /   Vladimir VLACH > ))))))))  |    \/ |_ /\ |) /\   |
|__ __  / // /   Admin of ICQ.CZ > ((((   \  | Age       -       19|
|\ \\ \/ // /  http://www.icq.cz > \\\   6 6 | Nick      - Vladaman|
| \ \\/ // / http://www.pcnet.cz >  \C     7 | ICQ UIN#  -  9511246|
|  \ V /V /  email: vlach na icq.cz >   \   _-) | Location  -     Brno|
+---\_/\_/-=---=---=---=---=---=-+-=- ) ( =-=+---------------------+
</PRE>


Další informace o konferenci Databases