Avatar billede jss Nybegynder
15. marts 2005 - 14:57 Der er 3 kommentarer og
1 løsning

SQL: count, group by, og null/nul

Sidder og har problemer med denne SQL:
SELECT DISTINCT(intNavn),intNavn AS Name,COUNT(done) AS Antal,done FROM visit Group by intNavn,done

Jeg skal have den til at returnere null/nul, når der ikke er nogen counts i en gruppering. Flg. spørgsmål kører på helt samme problemstilling http://eksperten.dk/spm/50590, men jeg kan ikke få det til at virke :-(

Formålet er at få opstillet en tabel, der har "intNavn" nedad og "done" henad (også kaldet krydstabulering) - og når der i en undergruppe IKKE er noget count, så skal der stå nul.

Lige nu ødelægges strukturen, hvis der ikke er noget count i en undergruppe. Kode ser sådan ud lige nu:

    Response.Write "<table class='table'>"

    set objRS = server.createobject("ADODB.Recordset")
    with objRS
      .open strSQL, DSN, adOpenForwardOnly, adLockReadOnly, adCmdText
      do until .EOF
        if overskrift <> .Fields("Name") Then
            overskrift = .Fields("Name")
            Response.Write "<tr><td><b>" & overskrift & ":</b><td>"
        end if
          if .Fields("Done") = 0 Then
            tmp=.Fields("Antal")
            status="Ikke indtastet"
            if tmp = NULL Then
              tmp=0
            end if
            Response.Write "<td>"& tmp &" ("& .Fields("Done") &"): <a href='?action=showdetails&type=k&ID=" & .Fields("Name") & "'>" & status & "</a></td>"
          end if
        if .Fields("Done") = 1 Then
            tmp=.Fields("Antal")
            status="Afvist ved godkendelse"
            if IsEmpty(tmp) = TRUE Then
              tmp=0
            end if
            Response.Write "<td>"& tmp &" ("& .Fields("Done") &"): <a href='?action=showdetails&type=k&ID=" & .Fields("Name") & "'>" & status & "</a></td>"
          end if
        if .Fields("Done") = 2 Then
            tmp=.Fields("Antal")
            status="Til godkendelse"
            if IsEmpty(tmp) = TRUE Then
              tmp=0
            end if
            Response.Write "<td>"& tmp &" ("& .Fields("Done") &"): <a href='?action=showdetails&type=k&ID=" & .Fields("Name") & "'>" & status & "</a></td>"
          end if
        if .Fields("Done") = 3 Then
            tmp=.Fields("Antal")
            status="Godkendt"
            if IsEmpty(tmp) = TRUE Then
              tmp=0
            end if
            Response.Write "<td>"& tmp &" ("& .Fields("Done") &"): <a href='?action=showdetails&type=k&ID=" & .Fields("Name") & "'>" & status & "</a></td>"
          end if

        .movenext
      loop
      .close
    end with
    set objRS = Nothing
    Response.Write "</table>"
Avatar billede jss Nybegynder
16. marts 2005 - 13:35 #1
Andre spørgsmål med samme problemstilling:

http://eksperten.dk/spm/374341
http://eksperten.dk/spm/166285
http://forums.aspfree.com/t43707/s.html

Har forresten fået reduceret koden lidt, men kan stadig ikke få returneret nul ved "tom undergruppe".

SELECT intNavn AS Name,COUNT(done) AS Antal,done FROM PDKvisit Group by intNavn,done

    set objRS = server.createobject("ADODB.Recordset")
    with objRS
      .open strSQL, DSN, adOpenForwardOnly, adLockReadOnly, adCmdText
        do until .EOF
          if overskrift <> .Fields("Name") Then
            overskrift = .Fields("Name")
            Response.Write "<tr><td><b>" & overskrift & ":</b><td>"
          end if
          tmp=.Fields("Antal")
          if isEmpty(tmp)=TRUE OR tmp=NULL Then
            tmp=0
          end if
          Response.Write "<td>"& tmp &" ("& .Fields("Done") &"): <a href='?action=showdetails&type=k&ID=" & .Fields("Name") & "'>" & status & "</a></td>"
          .movenext
        loop
      .close
    end with
    set objRS = Nothing
    Response.Write "</table>"
Avatar billede jss Nybegynder
16. marts 2005 - 15:43 #2
Er der slet ingen der har et bud?
Avatar billede jss Nybegynder
17. marts 2005 - 11:15 #3
Den må da være spændende at løse - så derfor er point hævet til 100 ;-)
Avatar billede jss Nybegynder
05. april 2005 - 10:15 #4
Nå, jeg lukker og slukker ;-(
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
Kurser inden for grundlæggende programmering

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