/ 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
Flere counts i Access-sqlstreng
Fra : Jonas Schmeltz Aaber~


Dato : 19-08-04 21:36

Hej!

Jeg har brug for at tælle hhv. antal nye og antal gamle beskeder i mit
virtuelle mailsystem, og det ville være dejligt at kunne samle disse
informationer i ét recordset.
Indikationen i MS Access-databasen for at en meddelelse er læst er, at
feltet (yes/no) Læst = True.
Hvordan gør jeg dette lettest?

MVH Jonas (aka Juke)



 
 
Jens Gyldenkærne Cla~ (20-08-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-08-04 10:44

Jonas Schmeltz Aaberg skrev:

> Jeg har brug for at tælle hhv. antal nye og antal gamle
> beskeder i mit virtuelle mailsystem, og det ville være dejligt
> at kunne samle disse informationer i ét recordset.

Hvis det er samme felt, vil jeg anbefale group by:

   SELECT Læst, COUNT(*) as antal GROUP BY Læst

Det giver ét postsæt med en post for hver værdi af læst (her kun
2), sat sammen med antallet af poster der har den givne værdi.

Hvis du vil styre den rækkefølge du får værdierne præsenteret i (fx
for at udskrive Læst=True før Læst=False), kan du blot sætte ORDER
BY Læst (DESC) i halen på sql-sætningen.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jonas Schmeltz Aaber~ (20-08-2004)
Kommentar
Fra : Jonas Schmeltz Aaber~


Dato : 20-08-04 11:59

> Hvis det er samme felt, vil jeg anbefale group by:
>
> SELECT Læst, COUNT(*) as antal GROUP BY Læst

Ja, det er samme felt.
Men Access returnerer følgende fejl når jeg bruger ovenstående sql-streng:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] SELECT-sætningen indeholder et
reserveret ord eller argument, der er stavet forkert eller mangler, eller
tegnsætningen er ikke korrekt.

> Det giver ét postsæt med en post for hver værdi af læst (her kun
> 2), sat sammen med antallet af poster der har den givne værdi.

- Så den førstkaldte rs("antal") returnerer så antallet af poster med Læst =
False...?


MVH Jonas (aka Juke)



Jens Gyldenkærne Cla~ (20-08-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-08-04 12:54

Jonas Schmeltz Aaberg skrev:

>> SELECT Læst, COUNT(*) as antal GROUP BY Læst
>
> Ja, det er samme felt.
> Men Access returnerer følgende fejl når jeg bruger ovenstående
> sql-streng:


Ah - der mangler jo også navnet på tabellen. Du skal have "FROM
dintabel" ind før GROUP BY:

SELECT Læst, COUNT(*) as antal FROM dintabel GROUP BY Læst

("dintabel" skal erstattes med navnet på din tabel).

NB: Vær opmærksom på at danske tegn (æøå) i felt- eller tabelnavne
kan give problemer - jeg vil anbefale at undgå dem.


> - Så den førstkaldte rs("antal") returnerer så antallet af
> poster med Læst = False...?

Ja - forudsat at False kommer før True (jeg kan ikke huske Access'
indstilling her).
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Nikolaj Lundsgaard (20-08-2004)
Kommentar
Fra : Nikolaj Lundsgaard


Dato : 20-08-04 12:41

> Jeg har brug for at tælle hhv. antal nye og antal gamle beskeder i mit
> virtuelle mailsystem, og det ville være dejligt at kunne samle disse
> informationer i ét recordset.

En fræk måde at gøre det på er (med forbehold for at en så fræk sql
konstruktion er mulig i access):

select count( Case When [Læst] Then 1 Else NULL End ) As [Læst],
count( Case When Not [Læst] Then 1 Else NULL End ) As [ULæst]
From table


Mvh Nikolaj



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

Månedens bedste
Årets bedste
Sidste års bedste