Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 4.233 pregleda

Najnovija ↓

Zasto mi ovo ne radi?! 12.02.2007. u 11:42 · pre 240 meseci #1
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?
Re: Zasto mi ovo ne radi?! 12.02.2007. u 18:17 · pre 240 meseci #2
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Zasto mi ovo ne radi?! 12.02.2007. u 18:52 · pre 240 meseci #3
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.
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Zasto mi ovo ne radi?! 13.02.2007. u 00:42 · pre 240 meseci #4
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'


Re: Zasto mi ovo ne radi?! 13.02.2007. u 00:56 · pre 240 meseci #5
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!
Potpis
ex Strog

http://www.zeussoftware.rs
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme