[ MatezYU @ 12.02.2007. 10:42 ] @
select count(lbo) as max1 from pacijent where pusenje='D'
union
select count(lbo) as max2 from pacijent where pusenje='N'


stavio sam ovo u ADOQuery1 i vraca mi nazad samo max1 a od max2 nema ni trega.. Inace kada postavim direktno sa ems manager-om upit mysql bazi redovno dobijem rezultat.. Kako mogu da ovo odradim da mi u jednom upitu vrati dva rezultata?
[ savkic @ 12.02.2007. 17:17 ] @
> select count (ID) from partneri where id > 200select count(lbo) as max1 from pacijent where pusenje='D'
> union
> select count(lbo) as max2 from pacijent where pusenje='N'

> stavio sam ovo u ADOQuery1 i vraca mi nazad samo max1 a od max2 nema ni trega.. I

Ne koristim ADO pa ne mogu komentarisati da li je do njega ili ne. Možeš napisati ovako (verovatno je i efikasnije):
Code:

select 
  count(ID)
from 
  pacijent
group by pusenje;


Vidim da si koristio count(ID) i COUNT(LBO), pa ako ti je doista bitno po kom polju se broji, primer može dati neočekivan rezulta.
[ Miloš Baić @ 12.02.2007. 17:52 ] @
Efikasnije je, dodao bih još atribut "pušenje", čisto da se zna koji rezultat pripada kojem slovu (D,N).
Nije do ADOQueryja, ovo prolazi sto posto.
[ badam @ 12.02.2007. 23:42 ] @
Citat:
MatezYU:
select count(lbo) as max1 from pacijent where pusenje='D'
union
select count(lbo) as max2 from pacijent where pusenje='N'


savkicev način je logičniji, ali ako iz nekog razloga mora da bude sa UNION, pokušaj sa:

Code:
 
select count(lbo) as max1, 0 as max2 from pacijent where pusenje='D' 
union
select 0 as max1, count(lbo) as max2 from pacijent where pusenje='N'


[ Bojan Kopanja @ 12.02.2007. 23:56 ] @
Citat:
savkic: > select count (ID) from partneri where id > 200select count(lbo) as max1 from pacijent where pusenje='D'
> union
> select count(lbo) as max2 from pacijent where pusenje='N'

> stavio sam ovo u ADOQuery1 i vraca mi nazad samo max1 a od max2 nema ni trega.. I

Ne koristim ADO pa ne mogu komentarisati da li je do njega ili ne. Možeš napisati ovako (verovatno je i efikasnije):
Code:

select 
  count(ID)
from 
  pacijent
group by pusenje;


Vidim da si koristio count(ID) i COUNT(LBO), pa ako ti je doista bitno po kom polju se broji, primer može dati neočekivan rezulta.


Ukoliko se radi o Access bazi onda i ako se ubaci u SELECT i "pusenje" kao sto je Milos Baic rekao, onda se "pusenje" MORA dodati i u GROUP zato sto Access zahteva da sve sto se nalazi u SELECT-u, a nije agregatna f-ja bude i u GROUP-u! Ovde treba jako voditi racuna o redosledu navodjenja atributa u GROUP-u ako ih ima vise posto grupisanje po razlicitim atributima ( tj. po istim atributima, ali navedenim razlicitim redosledima ) moze dovesto do potpuno razlicitih razultata u upitu nad istom podacima!