/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Simpelt SQL
Fra : Thomas Voller


Dato : 27-04-03 11:53

Hej NG.


Leger med en lille ASP-applikation, men er stødt på et underligt lille
problem med et SQL udtryk. Jeg har to tabeller (Groups/Billedkategorier og
Images/Billeder), som jeg gerne ville have talt antallet af records i. Altså
hvor mange billedkategorier er der og hvor mange billeder er der i alle
kategorierne tilsammen. Til det bruger jeg:

<%
strSQL = "SELECT COUNT(Images.ImageID), COUNT(Groups.GroupID) FROM
Images, Groups"
Call OpenDB(strSQL, strConnect) 'Åbner DB, returnerer objRS
Dim intBilleder, intSektioner
intBilleder = objRS(0)
intSektioner = objRS(1)
Call CloseDB
%>

Men det virker ikke efter hensigten. Hvis jeg f.eks. har 0 billeder og 1
kategori bliver både intBilleder og intSektioner sat lig 0. Det er jo ikke
meningen, når der rent faktisk er en kategori. Hvad er det, der kikser?



Mvh. Voller.



 
 
Torben Brandt (27-04-2003)
Kommentar
Fra : Torben Brandt


Dato : 27-04-03 13:52

Thomas Voller wrote:
> Leger med en lille ASP-applikation, men er stødt på et underligt lille
> problem med et SQL udtryk. Jeg har to tabeller (Groups/Billedkategorier og
> Images/Billeder), som jeg gerne ville have talt antallet af records i. Altså
> hvor mange billedkategorier er der og hvor mange billeder er der i alle
> kategorierne tilsammen. Til det bruger jeg:
>
> <%
> strSQL = "SELECT COUNT(Images.ImageID), COUNT(Groups.GroupID) FROM
> Images, Groups"
> Call OpenDB(strSQL, strConnect) 'Åbner DB, returnerer objRS
> Dim intBilleder, intSektioner
> intBilleder = objRS(0)
> intSektioner = objRS(1)
> Call CloseDB
> %>
>
> Men det virker ikke efter hensigten. Hvis jeg f.eks. har 0 billeder og 1
> kategori bliver både intBilleder og intSektioner sat lig 0. Det er jo ikke
> meningen, når der rent faktisk er en kategori. Hvad er det, der kikser?

Problemet er at:
FROM Images, Groups
laver en midlertidig tabel, hvor alle poster i de to tabeller parres.
Dernæst tæller du op.
Resultatet er ens for begge COUNTs og er (vist nok) antal poster i
Images gange antal poster i Groups.

Du skal i stedet bruge dette, hvor man laver de to COUNTs hver for sig
og så sætter dem sammen bagefter:
SELECT COUNT(Images.ImageID) as antal FROM Images
UNION
SELECT COUNT(Groups.GroupID) as antal FROM Groups
De kan så hentes ud med:
intBilleder = objRS("antal")
objRS.MoveNext
intSektioner = objRS("antal")
(Læg mærke til objRS.MoveNext, som ikke var der før)

mvh Torben


Thomas Voller (27-04-2003)
Kommentar
Fra : Thomas Voller


Dato : 27-04-03 19:01

> Du skal i stedet bruge dette, hvor man laver de to COUNTs
> hver for sig og så sætter dem sammen bagefter

Jamen det er jo smukt. Mange tak.



Mvh. Voller.



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste