Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684

    Raggruppare date ed ordini con GROUP BY

    Ho creato una query sql che interroga 3 tabelle relazionate:
    codice:
    SQL = "SELECT ORDINI.codiceordine, ORDINI.data, DETTAGLIO_ORDINI.codicefilm, DETTAGLIO_ORDINI.Ordine, DETTAGLIO_ORDINI.prezzofilm, FILM.idfilm, FILM.prezzoacquisto FROM film, dettaglio_ordini, ordini WHERE FILM.idfilm = DETTAGLIO_ORDINI.codicefilm  AND DETTAGLIO_ORDINI.ordine = ORDINI.codiceordine AND ORDINI.data BETWEEN #" & cDate(primoGiorno) & "# AND #" & cDate(ultimoGiorno) & "# ORDER BY ORDINI.data DESC"
    Vorrei far apparire per ogni giorno del mese il totale degli ordini pervenuti. La connsesione con la tabella film mi serve per recuperare il costo di acquisto dei prodotti e creare il totale.

    Allo satto attuale mi stampa a video tante volte un ordine per quanti sono i film in esso contenuto.

    Ho pensato di usare 'GROUP BY' ma dovrei utlizzarlo su ORDINI.codiceordine?
    Ma mi restituisce errore.

    ALtra cosa il 'GROUP BY' dove lo inserisco prima dell'ORDER BY?

    Grazie, è la prima volta che uso questa funzione.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    HO modificato, per semplificare, la SELECT:

    codice:
    SELECT data, COUNT(*) As TOT FROM ordini WHERE data BETWEEN #" & cDate(primoGiorno) & "# AND #" & cDate(ultimoGiorno) & "# GROUP BY data ORDER BY data DESC
    Ora vorrei stampare a video, avviamente il numero totale, di tutti i record con data uguale

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Ragazzi non ho capito bene la sintassi della funzione di aggregazione COUNT, potreste aiutarmi?

    il codice che uso è questo:
    codice:
    Set rs = conn.Execute("SELECT COUNT(data) FROM ordini WHERE data = #" & cDate(rsmese("data")) & "#")
    
    response.write rs("data")

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Risolto così
    codice:
    Set rsordini = conn.Execute("SELECT COUNT(*) AS ordiniTotali FROM ordini WHERE data = #" & cDate(rsmese("data")) & "#")
    Non avevo chiaro il discorso che bisogna nominare una sorta di campo fittizio dove memorizzare i dati del COUNT.

    In questo caso ordiniTotali

  5. #5
    Originariamente inviato da dreaman74
    Risolto così
    codice:
    Set rsordini = conn.Execute("SELECT COUNT(*) AS ordiniTotali FROM ordini WHERE data = #" & cDate(rsmese("data")) & "#")
    Non avevo chiaro il discorso che bisogna nominare una sorta di campo fittizio dove memorizzare i dati del COUNT.

    In questo caso ordiniTotali
    Si chiamano ALIAS.

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.