Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    Contare prenotazioni per canale di vendita

    Buonasera
    ho bisogno di mostrare un grafico con le vendite dell'anno, a partire dal 1 gennaio 2022 al 31 dicembre 2022 (che poi l'anno prossimo cambiero' in 2023, poi se c'e' un modo per farlo in automatico meglio ancora)

    in pratica quando viene inserita una prenotazione, il modulo ha una select chiamata "linea_chiamata" che fa capire da quale canale entra la prenotazione e potrebbe essere:
    1) google
    2) facebook
    3) instagram
    4) agenzia
    5) diretto
    ecc ecc

    Adesso vorrei capire quante prenotazioni sono entrate da ogni canale.

    come query avevo pensato a questa:
    codice:
    SELECT DATE_FORMAT(data_prenotazione, '%m/%Y') AS fdata, 
    linea_chiamata 
    FROM prenotazioni 
    WHERE cancellata='0' 
    and data_prenotazione between '2022-01-01' and '2022-12-31' 
    order by fdata asc";
    questa mi vede tutte le prenotazioni dell'anno che non siano state cancellate.

    Per gestire i canali devo fare piu' query ed aggiungere la clausola
    WHERE linea_chiamata = "1";
    WHERE linea_chiamata = "2";
    WHERE linea_chiamata = "3";
    WHERE linea_chiamata = "4";
    etc?

    oppure posso fare una sola query che mi gestisce la cosa in automatico?
    Grazie

  2. #2
    devi usare COUNT()... GROUP BY...

    esempio: SELECT Provincia, COUNT(*) FROM Anagrafiche GROUP BY Provincia


  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Quote Originariamente inviata da optime Visualizza il messaggio
    devi usare COUNT()... GROUP BY...

    esempio: SELECT Provincia, COUNT(*) FROM Anagrafiche GROUP BY Provincia

    ciao, grazie
    sembra funzionare, pero' adesso vorrei capire come posso sommare tutte le prenotazioni senza dover fare un'altra query
    ottengo questo:

    52 vendite - Facebook
    14 vendite - Instagram
    4 vendite - Google Ads


    ecc ecc
    adesso vorrei sommare 52+14+4 senza fare una nuova query

    codice:
    $query_per_canale = "SELECT
    COUNT(linea_chiamata) as canale, data_prenotazione, linea_chiamata
    FROM prenotazioni
    WHERE cancellata='0' and data_prenotazione between '2022-01-01' and '2022-12-31'
    GROUP BY linea_chiamata";
    $risultato_per_canale = $connessione->query($query_per_canale) or die($connessione->error);
    $numero_prenotazioni_anno_corrente = mysqli_num_rows($risultato_per_canale);
    while($riga_per_canale = $risultato_per_canale->fetch_assoc()) {
    $data_prenotazione = $riga_per_canale['data_prenotazione'];
    $linea_chiamata = $riga_per_canale['canale'];
    $linea_chiamata2 = $riga_per_canale['linea_chiamata'];
    
    
        //estraggo i canali di vendita per mostrare il nome
        $sql_canale = "SELECT id_canale, canale from canali where id_canale=\"$linea_chiamata2\"";
        $risultato_canale = $connessione->query($sql_canale) or die($connessione->error);
        while($riga_canale = $risultato_canale->fetch_assoc()) {
        $id_canale = $riga_canale['id_canale'];
        $canale = $riga_canale['canale'];
        }
    
    
    echo"<br>canale $linea_chiamata - $canale<br>";
    }

  4. #4
    se il totale lo metti in fondo, somma i parziali via via che li stampi a video

  5. #5

  6. #6
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    non vorrei metterlo in fondo ma come in questa immagine di esempio (i canali saranno di piu' ed anche i risultati)


    https://postimg.cc/PvrMVv20

    mi conviene fare una nuova query?

  7. #7

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 © 2025 vBulletin Solutions, Inc. All rights reserved.