Jeg har flere forskellige tabeller, der alle indeholder det samme felt
- lad os kalde det FELT1. Dette felt kan f.eks. have værdien 0 eller
1. Jeg vil så tælle hvor mange records, fra alle mine tabeller, der
har værdien 1 i FELT1.
Lad os for nemheds skyld sige, at jeg kun har 2 tabeller - TABEL1 og
TABEL2. I TABEL1 er der f.eks. 3 records, der opfylder kriteriet, og i
TABEL2 er der 2 records.
Det jeg er på jagt efter, er et resultat med én record, hvor værdien
er 5 (altså 3 + 2).
Mit første forsøg:
select count(*)
from table1, table2
where field1 = 1
Det giver (naturligvis) én record, men med en forkert værdi - (og alt
afhængig af, hvilken rækkefølge man selecter fra tabellerne).
Mit næste forsøg:
select count(*)
from table1, table2
where table1.field1 = 1
and table2.field1 = 1
Det giver mig én record - men også med en forkert værdi. (De to
count's bliver her ganget sammen).
Jeg forsøger så med union:
select count(*)
from table1
where status = 1
union
select count(*)
from table2
where status = 1
Og det giver mig så to records med værdierne 3 og 2. Tæt på, men ikke
tæt nok.
Hvad er den helt åbenlyse løsning, jeg ikke kan se? På forhånd tak.
Mvh, Claus
--
I never apologize! I'm sorry, but that's the way I am.
- Homer Simpson
|