Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Un aiuto su query SQL

  1. #1
    Utente di HTML.it L'avatar di ghini76
    Registrato dal
    Jun 2003
    Messaggi
    560

    Un aiuto su query SQL

    Ciao a tutti,
    in una tabella ho tanti record raggruppati idealmente da un campo numeri chiamato IdCategoria.
    Vorrei creare una tabella dove mi riporta in una colonna il nome della categoria e nell'altra il numero di record per ogni categoria. Es:

    Categoria Numero schede
    Pizza 10
    Pasta 2
    Carne 5

    Vorrei fare ciò senza eseguire tante query quante sono le categorie... ho provato a fare molte prove combinando in vari modi il Count(*) con la clausola Group By e Having ma ottengo sempre errori o risultati sballati...

    Mi date una mano? Non riesco a venirne fuori... forse sarà l'aria condizionata rotta!!

    Grazie tanto tanto

  2. #2
    codice:
    function countChilds(theParentID)
        theQuery = "SELECT COUNT(idProdotto) FROM prodotti WHERE idCategoria = " & theParentID
        set theRecordset = conn.execute(theQuery)
        countChilds = theRecordset(0)
        theRecordset.close
        set theRecordset = nothing
    end function
    
    set conn = server.createObject("ADODB.Connection")
    conn.open connString
    
    sql = "SELECT categoria, idCategoria FROM categorie"
    set rs = conn.execute(sql)
    
        if not rs.eof then
            do until rs.eof
                response.write rs("categoria") & " " & countChilds(rs("idCategoria")) & "
    "
            rs.moveNext
            loop
        end if
    
    rs.,close
    set rs = nothing
    
    conn.close
    set conn = nothing

  3. #3
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    non vedendo i dati non posso interpretare bene, ma potresti fare una sub query:

    SELECT id, (select count(*) from altra_tab where id = TUA_TAB.id ) FROM TUA_TAB
    in teoria è più facile usando gli inner join...

    ciao.

  4. #4
    Utente di HTML.it L'avatar di ghini76
    Registrato dal
    Jun 2003
    Messaggi
    560
    Originariamente inviato da agenti
    non vedendo i dati non posso interpretare bene, ma potresti fare una sub query:

    SELECT id, (select count(*) from altra_tab where id = TUA_TAB.id ) FROM TUA_TAB
    in teoria è più facile usando gli inner join...

    ciao.
    Grazie... il tuo suggerimento è stato prezioso... ce l'avevo proprio sulla punta delle dita...
    con i Join c'ho provato con la clausola Group By ma mi ci sono legato mani e piedi come dicevo prima....
    Cmq con la subquery funziona alla grande... e' anche abbastanza veloce... dici che con i Join sarebbe più veloce?

    Ciao e grazie del suggerimento

  5. #5
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    sarebbe più corretto usare i join...
    ma anche le subquery non dovrebbero influenzare di molto le prestazioni.

    ciao.

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.