Toon posts:

[asp] lastige sqlquery

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik moet uit 6 tabellen de totalen optellen per gebruiker.
Dus ik maak een loopje die door de tabellen gaat, met de do while lus
tabel = 1

for gebrid = 1 to 10

do while tabel <> 0

Daartussen haal ik de getallen uit de db met de volgende query:

SQL = "SELECT "
SQL = SQL &"Sum(bedrag1) AS Tot_bedrag1, "
SQL = SQL &"Sum(bedrag2) AS Tot_bedrag2, "
SQL = SQL &"Sum(bedrag3) AS Tot_bedrag3 "
SQL = SQL &"FROM tabel_"&tabel&" "
SQL = SQL &"Where gebrid="&gebrid

en tel ik die op
totbedrag1 =totbedrag1 +rs("tot_bedrag1") ' hier zit nog een isnotnull op
totbedrag2 =totbedrag2 +rs("tot_bedrag2")
totbedrag3 =totbedrag3 +rs("tot_bedrag3")
tabel + 1
if tabel =6 then tabel =0

loop ' volgende tabel

response.write gebrid
response.write totbedrag1
response.write totbedrag2
response.write totbedrag3

'op nul voor volgende gebr
totbedrag1 = 0
totbedrag2 = 0
totbedrag3 = 0

next 'gebruiker


Nu het probleem, de waardes die weergegeven worden komen niet overeen met de waardes in de DB.
Vaak een 0

In mijn geval is het nog uitgebreiden, maar dit is even om het overzichtelijk te houden.

Iemand enig idee wat er fout gaat

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Klinkt als een mooi database model

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 22:51
Ik heb de code een beetje herschreven. Volgens mij moet het onderstaande werken.

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
dim tabel, gebrid
tabel = 1
for gebrid = 1 to 10
     totbedrag1 = 0
     totbedrag2 = 0
     totbedrag3 = 0
     do while tabel <> 0
          dim objRECORDSET
          SQL = "SELECT "
          SQL = SQL & "Sum(bedrag1) AS Tot_bedrag1, "
          SQL = SQL & "Sum(bedrag2) AS Tot_bedrag2, "
          SQL = SQL & "Sum(bedrag3) AS Tot_bedrag3 "
          SQL = SQL & "FROM tabel_" & tabel &" "
          SQL = SQL & "Where gebrid = " & gebrid
          objRECORDSET = DBConn.Execute(SQL)
          IF (objRECORDSET.EOF = FALSE) THEN
               totbedrag1 = totbedrag1 +CDbl(rs("tot_bedrag1"))
               totbedrag2 = totbedrag2 +CDbl(rs("tot_bedrag2"))
               totbedrag3 = totbedrag3 +CDbl(rs("tot_bedrag3"))
          END IF
          objRECORDSET.Close
          set objRECORDSET = nothing
          tabel = tabel + 1
          IF (tabel = 6) THEN
               tabel = 0
          END IF
     LOOP
     response.write gebrid
     response.write totbedrag1
     response.write totbedrag2
     response.write totbedrag3
NEXT

Verwijderd

Topicstarter
Het is ook een mooi database model, alleen er zijn bijna 100 tabellen een heel groot project.
elke tabel is heel anders

Ok dank je wel ik ga ik even kijken of het werkt

Verwijderd

Topicstarter
Ik krijg allemaal foutmeldingen op jou stuk code:

Object doesn't support this property or method: 'eof'

Object doesn't support this property or method: 'Close'

Misschien had ik er even bij moeten vertellen dat het, hmmmm...
Ik heb er even een ' voor gezet en er komt wel wat uit, ik ga nu even kijken of de data klopt.

Verwijderd

Topicstarter
Hij doet nu alleen de eerste goed de rest staat weer op 0.
Dat komt natuurlijk doordat ik de IF (objRECORDSET.EOF = FALSE) THEN heb uitgezet.

hmm... iemand een idee

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Set objRECORDSET = DBConn.Execute(SQL)

Today's subliminal thought is:

Pagina: 1