Avatar billede axkris Nybegynder
26. april 2004 - 16:26 Der er 7 kommentarer og
2 løsninger

Fejl: Record-tæller altid lig en

Hej

Jeg her disse to sætninger:
1) "SELECT Count(ANNONCE_ID) as Records_count FROM PLUSPROFIL_ANNONCE WHERE POINTS < MAXPOINTS AND TRIN = " & strTrin   

2) "SELECT ANNONCE_ID FROM PLUSPROFIL_ANNONCE WHERE POINTS < MAXPOINTS AND TRIN = " & strTrin

Begge virker fint, men når jeg kører dem samme til:
3) "SELECT Count(ANNONCE_ID) as Records_count, ANNONCE_ID FROM PLUSPROFIL_ANNONCE WHERE POINTS < MAXPOINTS AND TRIN = " & strTrin & " GROUP BY ANNONCE_ID"

Så giver tælleren altid 1, og det er ikke korrekt. Hvorfor?
Avatar billede jensen363 Forsker
26. april 2004 - 17:07 #1
Sålænge du både tæller og gruppere på ANNONCE_ID, vil tæller aldrig blive mere end 1.
Avatar billede axkris Nybegynder
26. april 2004 - 17:10 #2
Ok, men hvordan gør jeg så?
Avatar billede jensen363 Forsker
26. april 2004 - 17:13 #3
Fjerner GROUP BY ...

SELECT Count(ANNONCE_ID) as Records_count, ANNONCE_ID
FROM PLUSPROFIL_ANNONCE
WHERE POINTS < MAXPOINTS AND TRIN = " & strTrin & "
Avatar billede jensen363 Forsker
26. april 2004 - 17:24 #4
Sagt på en anden måde, så længe du vælger at medtage gruperingen, vil du ikke få en summering, andet end på grupperingen ...
Avatar billede jensen363 Forsker
26. april 2004 - 17:32 #5
Hvad er formålet med, at få vist samtlige ANNONCE_ID og samtidig have antallet af ANNONCE_ID summeret for hver record ?

I en rapport/formular kan du summere friere end i forespørgslen
Avatar billede axkris Nybegynder
26. april 2004 - 18:18 #6
fejl:
[TCX][MyODBC]Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause

ved:
strQuery = "SELECT Count(ANNONCE_ID) as Records_count, ANNONCE_ID FROM PLUSPROFIL_ANNONCE WHERE POINTS < MAXPOINTS AND TRIN <> 0 AND TRIN >= " & ranValue & " ORDER BY TRIN DESC"
Avatar billede axkris Nybegynder
26. april 2004 - 18:23 #7
Her er hele koden, hvis det har din interesse:

    strSQL = "SELECT MAX(TRIN) AS MAX_TRIN FROM PLUSPROFIL_ANNONCE"
    set rs = dataConn.execute(strSQL)   
    strMaxTrin = RS("MAX_TRIN")
   
    strAnnonceIDs = ""
   
    i = 0

    while i < 2
        randomize
        ranValue = int(strMaxTrin * rnd) * 2
       

        strQuery = "SELECT Count(ANNONCE_ID) as Records_count, ANNONCE_ID FROM PLUSPROFIL_ANNONCE WHERE POINTS < MAXPOINTS AND TRIN <> 0 AND TRIN >= " & ranValue & " ORDER BY TRIN DESC"
        set rs = dataConn.execute(strQuery)
        if not (rs.eof or rs.bof) then
            rs.move(int(rs("Records_count") * rnd))
            if not (rs.eof or rs.bof) then
                if inStr(strAnnonceIDs, rs("ANNONCE_ID")) = 0 then
                    strAnnonceIDs = strAnnonceIDs & " OR ANNONCE_ID = " & rs("ANNONCE_ID")
                    i = i + 1
                end if
            end if
        end if
    wend
Avatar billede jkrons Professor
27. april 2004 - 10:05 #8
Prøv at fjerne ANNONCE_ID fra sætningen,

strQuery = "SELECT Count(ANNONCE_ID) as Records_count FROM PLUSPROFIL_ANNONCE WHERE POINTS < MAXPOINTS AND TRIN <> 0 AND TRIN >= " & ranValue & " ORDER BY TRIN DESC"
Avatar billede jkrons Professor
27. april 2004 - 10:06 #9
Du kan ikke både tælle antallet af Annonce_Id og så vist de enkelte Annonce_ID i samme forespørgsel.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester