Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 57
  1. #1
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412

    Conta iniziali su database

    Ecco il quesito

    Ho un database con la tabella "iniziali" in cui ci sono, per ogni record, una lettera dell'alfabeto (comprese W, Y, K, J) o un numero (da 0 a 9)

    quindi è possibile che ci siano 3 "A", 2 "B", 7 "C", 3 "5", e così via... Mi servirebbe qualcosa che mi restituisca

    A (3) | B (2) | C (7) ......... | 5 (3)

    come si fa?

    grazieeee

  2. #2
    Supponendo che la tabella nel db sia fatta così:

    codice:
    +----+---------+
    | id | lettera |
    +----+---------+
    |  1 | A       |
    |  2 | B       |
    |  3 | C       |
    |  4 | D       |
    |  5 | A       |
    +----+---------+
    se fai così:

    codice:
    select lettera, count(lettera) from lettere group by lettera;
    ti restituisce

    codice:
    +---------+----------------+
    | lettera | count(lettera) |
    +---------+----------------+
    | A       |              2 |
    | B       |              1 |
    | C       |              1 |
    | D       |              1 |
    +---------+----------------+
    Dopo basta che scorri il recordset e sistemi i dati nel modo che vuoi...

    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  3. #3
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    grazie per la risposta, ma in che modo recupero i valori. Io penserei ad un ciclo "do While", ma non saprei proseguire... Altra domanda, e se volessi che per le lettere mancanti spunti

    P (0) | Q (0)

    ???????????????

  4. #4
    Suppongo che lavori con un db access giusto? Comunque:

    codice:
    set conn=Server.CreateObject("ADODB.Connection")
    conn.Provider="Microsoft.Jet.OLEDB.4.0"
    conn.Open Server.MapPath("/mdb-database/main_data.mdb")
    set rs = conn.execute ("select lettera, count(lettera) from iniziali group by lettera")
    
    'Qui crei un array lettere() dove ad ogni lettera e numero corrisponde un indice
    'quindi a 0 lo 0, all'1 1... ad 10 A e così via
    
    while not rs.eof
        if isNumeric(rs("lettera")) then
            lettere(cint(rs("lettera"))) = lettere(cint(rs("lettera")))+cint(rs(1))
        else
            lettere(cint(rs("lettera"))+10) = lettere(cint(rs("lettera"))+10)+cint(rs(1))
        end if
        rs.movenext
    wend
    può andare?
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  5. #5
    oppure nella query metti in join un'altra tabella dove sono presenti tutte le iniziali

  6. #6
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412

    <%
    Set rs = Server.CreateObject("ADODB.Recordset")
    query="SELECT iniziale, COUNT(iniziale) as conteggio FROM clienti GROUP BY iniziale order by iniziale asc"
    rs.Open query, conn ,3,3

    do while not rs.eof
    response.write (rs("iniziale") + " " + cstr(rs("conteggio")))&"
    "
    rs.movenext
    loop
    %>


    così mi conta le lettere e le relative frequenze, ma non so come fare con gli array (non sono un esperto)

  7. #7
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    nessuno che mi può dire come fare??

  8. #8
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    Ho fatto così, ma non va...


    <%
    Alfabeto = Array("A","B","C","D","E","F","G","H","I","L","M", "N","O","P","Q","R","S","T","U","V","Z","0","1","2 ","3","4","5","6","7","8","9")
    For Each Lettera in Alfabeto

    Set rs = Server.CreateObject("ADODB.Recordset")
    sql = "Select iniziale, count(iniziale) AS total From clienti where iniziale='"&lettera&"' GROUP BY iniziale order by iniziale asc"
    rs.Open sql, conn ,3,3
    response.write sql&" "&rs("total")&"
    "
    Next
    %>

  9. #9
    ti avevo suggerito di mettere in JOIN una tabellina con tutte le iniziali. l'hai fatto?

  10. #10
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    no... non saprei come fare... ho fatto una ricerca sul forum ed ho trovato quello script e volevo adattarlo... mi puoi aiutare?
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.