[ASP] Count probleem met access DB

Pagina: 1
Acties:
  • 46 views sinds 30-01-2008

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
hoi,

ik wil onze applicatie een beetje versnellen. hij moet nu een aantal dingen bij elkaar tellen en dat gebeurt nu d.m.v. asp,

dit wil ik door Access laten doen.. (sneller hoop ik)
maar ik kom op een hele rare waardes als ik m verander

dit is het orgineel :

code:
1
2
3
4
5
6
7
8
9
10
11
12
set recordset = server.CreateObject("ADODB.recordset")
strConn = "DSN=PS_original"
strSQL = "Select HOURS From SPECIALDAY WHERE REQ_EMPLID = '" & Session("EMPLID") &"' AND YEAR= '" & Session("var_YEAR") & "'"
recordset.open strSQL,strConn,1,2
SPECIALDAY = 0
Do while not recordset.EOF
SPECIALDAY = SPECIALDAY + recordset("HOURS")
recordset.movenext
Loop
recordset.close
set recordset = Nothing
Session("SPECIALDAY") = SPECIALDAY

hier komt nu 1 uit

dit heb ik er van gemaakt :

code:
1
2
3
4
5
6
7
set recordset = server.CreateObject("ADODB.recordset")
strConn = "DSN=PS_original"
strSQL = "SELECT Count(HOURS) AS intHours From SPECIALDAY WHERE REQ_EMPLID = '" & Session("EMPLID") &"' AND YEAR= '" & Session("var_YEAR") & "'"
recordset.open strSQL,strConn,1,2
Session("SPECIALDAY") = recordset("intHOURS")
recordset.close
set recordset = Nothing


hier komt 0.129032258064516 uit 8)7

iemand een idee ?!?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

Ik zou in plaats van de count de sum gebruiken van die 'Hours'. Volgens mij gaat het dan wel goed...

edit:
Uit de Access-help:

Sum: Total of the values in a field.
Count: Number of values in a field, not counting Null (blank) values.

[ Voor 46% gewijzigd door OZ-Gump op 06-01-2003 09:50 ]

My personal website


  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
* ArjanC is helemaal blij

THANKS !

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
ik heb dit niet kunnen vinden in de help :

hoe kan ik een SUM gebruiken in deze SqlStr..?
code:
1
strSQL = "Select DISTINCT REQNUM From FREEDAY WHERE YEAR = '" & Session("var_YEAR") & "' AND REQ_EMPLID = '" & Session("EMPLID") & "'"

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:26

gorgi_19

Kruimeltjes zijn weer op :9

Doe eens een poging en probeer het eens uit..... :P
In je beginpost doe je de syntax goed.. :)

* gorgi_19 verbaast zich ook dat het uberhaupt werkt...
REQ_EMPLID en YEAR zijn tekstkolommen?

[ Voor 93% gewijzigd door gorgi_19 op 06-01-2003 10:22 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
alles zijn Tekst kollommen :)

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
okee.. heb nu dit ervan gemaakt :

code:
1
strSQL = "Select DISTINCT COUNT(REQNUM) As intREQNUM From FREEDAY WHERE YEAR = '" & Session("var_YEAR") & "' AND REQ_EMPLID = '" & Session("EMPLID") & "'"


maar nu werkt de Distinct niet.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

tja ik denk dat die count op een tekstveld niet gaat werken

correct me als ik het fout zie

Doet iets met Cloud (MS/IBM)


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:26

gorgi_19

Kruimeltjes zijn weer op :9

Wat wil je eigenlijk bereiken? Wat moet de query uiteindelijk doen?
En waarom gebruik je count, als je een post erboven zegt dat je een SUM nodig hebt?

[ Voor 39% gewijzigd door gorgi_19 op 06-01-2003 10:35 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
na het werkt wel, maar niet zoals ik dat wil :)
Hij moet het aantal velden geven, maar hij telt ze nu bij elkaar op.

Dit is voor een soort van vrije dagen bij houd programma ( :) ).
ik wil het aantal aanvragen laten zien.

als je bv een vrije dag aanvraagt van 2 feb tot 10 feb worden er 8 records in de database gezet met hetzelfde REQNUM (request number)

ik wil dus alle verschillende request numbers optellen (niet de waarde maar het aantal) dit moet dus met een DISTINCT gebeuren.

maar hij telt nu de waardes op. (bv heb nu 8x reqnum 4002 erin zitten hij zou dus met 1 moeten komen maar komt nu met (8x4002) 32016)

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
gorgi_19, het zijn 2 verschillende dingen (foutje van mij had ik moeten uitleggen sorry)

maar met SUM wil ik het totaale aangevraagte uuren opvragen en hiermee de totale aanvragen.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

count(distinct blaat) lijkt me beter iig

Doet iets met Cloud (MS/IBM)


  • whoami
  • Registratie: December 2000
  • Laatst online: 09:26
D2k schreef op 06 January 2003 @ 10:32:
tja ik denk dat die count op een tekstveld niet gaat werken

correct me als ik het fout zie


Een count doe je niet op veld-niveau eigenlijk.
Een count gaat gewoon gaan weergeven hoeveel rijen er binnen een bepaalde 'groep' zijn.
Dat kan je dus evengoed op een tekstveld, numeriek, date veld doen. (Of ook op de ganse rij: select count (*) ... )

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 09:26
burp2001 schreef op 06 January 2003 @ 10:38:
na het werkt wel, maar niet zoals ik dat wil :)
Hij moet het aantal velden geven, maar hij telt ze nu bij elkaar op.

Dit is voor een soort van vrije dagen bij houd programma ( :) ).
ik wil het aantal aanvragen laten zien.

als je bv een vrije dag aanvraagt van 2 feb tot 10 feb worden er 8 records in de database gezet met hetzelfde REQNUM (request number)

ik wil dus alle verschillende request numbers optellen (niet de waarde maar het aantal) dit moet dus met een DISTINCT gebeuren.

maar hij telt nu de waardes op. (bv heb nu 8x reqnum 4002 erin zitten hij zou dus met 1 moeten komen maar komt nu met (8x4002) 32016)


Wat heb je nu nodig? Een count of een sum?
Een count gaat het aantal rijen gaan tellen, een sum gaat de waardes van een bepaald veld gaan cumuleren.

https://fgheysels.github.io/


  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
D2k, als ik dat doe :
code:
1
Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'COUNT(DISTINCT REQNUM)'.

  • whoami
  • Registratie: December 2000
  • Laatst online: 09:26
COUNT (DISTINCT *) oid, lukt meestal niet.

Wat je nodig hebt is een COUNT en een GROUP BY.
code:
1
2
3
SELECT reqnum, count(*)
FROM    tabel
GROUP BY reqnum

Eigenlijk gewoon basis SQL hoor.
Misschien heb je hier wel wat aan:
sql tutorial

[ Voor 15% gewijzigd door whoami op 06-01-2003 10:44 ]

https://fgheysels.github.io/


  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
Oh, ik zit helemaal verkeert.

als ik nu dit doe :
code:
1
Select Distinct Count (REQNUM) as .......


dan komt hij met 5 (er staan 5 records in de Database) maar hij zou eigelijk met 1 moeten komen (ze hebben allemaal dezelde REQNUM).

  • whoami
  • Registratie: December 2000
  • Laatst online: 09:26
burp2001 schreef op 06 January 2003 @ 10:46:
Oh, ik zit helemaal verkeert.

als ik nu dit doe :
code:
1
Select Distinct Count (REQNUM) as .......


dan komt hij met 5 (er staan 5 records in de Database) maar hij zou eigelijk met 1 moeten komen (ze hebben allemaal dezelde REQNUM).


Dumdiedum.... lees ff m'n vorige reactie.....

https://fgheysels.github.io/


  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
whoami schreef op 06 januari 2003 @ 10:47:

[...]


Dumdiedum.... lees ff m'n vorige reactie.....
thanks ;)

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
jullie weten toch dat ik van jullie hou ? ;)

code:
1
StrSQL = "SELECT DISTINCT reqnum, count(*) As intREQNUM FROM FREEDAY WHERE YEAR = '" & Session("var_YEAR") & "' AND REQ_EMPLID = '" & Session("EMPLID") & "' GROUP BY reqnum "


komt hij met 5 , moet 1 zijn..

snap ut niet meer..

  • whoami
  • Registratie: December 2000
  • Laatst online: 09:26
Doe dan eens eerst jouw query zonder count(*) en group by en kijk eens wat het resultaat dan is, en wat het resultaat zou moeten zijn met die count().

https://fgheysels.github.io/


  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
dit is wat ik vroeger had :
code:
1
2
3
4
5
6
7
8
9
10
11
set recordset = server.CreateObject("ADODB.recordset")
strConn = "DSN=PS_original"
strSQL = "Select DISTINCT REQNUM From FREEDAY WHERE YEAR = '" & Session("var_YEAR") & "' AND REQ_EMPLID = '" & Session("EMPLID") & "'"
recordset.open strSQL,strConn,1,2
Teller = 0
Do while not recordset.EOF
    Teller = Teller + 1
recordset.movenext
Loop
recordset.close
set recordset = Nothing


dit werkt maar als je er 8 in hebt staan word hij een beetje langzaam :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 09:26
Lees toch eens wat er gezegd wordt, en probeer dat eens uit.

(En doe die distinct weg bij die count()/GROUP BY query).

https://fgheysels.github.io/


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

lezen en je eigen zooi vergeten

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.