Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Bugu
    Registrato dal
    Nov 2007
    Messaggi
    871

    [access] query raggruppamento per mese

    Ho una query di selezione dalla quale vorrei estrarre un certo dato, ma solo se il mese del campo DATA corrisponde al mese attuale (il campo DATA è un campo formattato come data in cifre, es: 01/01/2009).

    In pratica dico alla query di sommarmi tutti i valori del campo "prz_scon" che abbiano il campo "data" uguale.
    Questo me lo fa.
    Ma vorrei che mi facesse vedere solo i valori del mese in corso.
    Ho fatto il codice in questo modo:

    codice:
    SELECT vendite_all.data, Sum(vendite_all.prz_scon) AS SommaDiprz_scon
    FROM vendite_all
    GROUP BY vendite_all.data
    HAVING (((vendite_all.data)=Month(Now())));
    Il problema credo sia qui:
    HAVING (((vendite_all.data)=Month(Now())));
    perchè se uso questo codice non mi mostra nessun valore, mentre se lo levo mi mostra TUTTI i valori, non solo quelli del mese in corso.
    Dove sbaglio?
    Come posso visualizzare solo i valori del mese in corso?
    Thanks
    Linux User
    ---------
    Solo due cose sono infinite: l'universo e la stupidità umana, e non sono tanto sicuro della prima.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Occhio che usando solo il mese come parametro di raggruppamento ti verrebbero conteggiati anche i mesi di maggio di altri anni. Devi raggruppare per mese/anno.

    Prova così
    codice:
    SELECT Format(data,"MMyyyy") AS periodo, sum(prz_scon) AS SommaDiprz_scon
    FROM vendite_all
    WHERE Format(data,"MMyyyy")=Format(now(),"MMyyyy")
    GROUP BY Format(data,"MMyyyy");

  3. #3
    Utente di HTML.it L'avatar di Bugu
    Registrato dal
    Nov 2007
    Messaggi
    871
    Originariamente inviato da nicola75ss
    Occhio che usando solo il mese come parametro di raggruppamento ti verrebbero conteggiati anche i mesi di maggio di altri anni. Devi raggruppare per mese/anno.

    Prova così
    codice:
    SELECT Format(data,"MMyyyy") AS periodo, sum(prz_scon) AS SommaDiprz_scon
    FROM vendite_all
    WHERE Format(data,"MMyyyy")=Format(now(),"MMyyyy")
    GROUP BY Format(data,"MMyyyy");
    Grazie anzitutto.
    Ok, giusta la puntualizzazione sull'anno.
    Ma in questo modo mi raggruppa in un unico valore la somma di tutti i campi "prz_scon" dello stesso mese, mentre io ho bisogno di vedere i valori tutti divisi per i diversi giorni dello stesso mese.
    Questo mi serve perchè la query mi genera un grafico nel quale vedo l'andamento delle vendite del mese, divise per giorni.
    Linux User
    ---------
    Solo due cose sono infinite: l'universo e la stupidità umana, e non sono tanto sicuro della prima.

  4. #4
    Utente di HTML.it L'avatar di Bugu
    Registrato dal
    Nov 2007
    Messaggi
    871
    Originariamente inviato da Bugu
    Grazie anzitutto.
    Ok, giusta la puntualizzazione sull'anno.
    Ma in questo modo mi raggruppa in un unico valore la somma di tutti i campi "prz_scon" dello stesso mese, mentre io ho bisogno di vedere i valori tutti divisi per i diversi giorni dello stesso mese.
    Questo mi serve perchè la query mi genera un grafico nel quale vedo l'andamento delle vendite del mese, divise per giorni.
    Mi quoto da solo: nel codice che mi hai passato tu faccio le seguenti modifiche:

    codice:
    SELECT Format(data,"dd") AS periodo, sum(prz_scon) AS SommaDiprz_scon
    FROM vendite_all
    WHERE Format(data,"MMyyyy")=Format(now(),"MMyyyy")
    GROUP BY Format(data,"dd");
    è corretto?
    Linux User
    ---------
    Solo due cose sono infinite: l'universo e la stupidità umana, e non sono tanto sicuro della prima.

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Mi sembra corretta.
    Aggiungerei giusto la clausola di ordinamento a fine query

    order by Format(data,"dd")


  6. #6
    Utente di HTML.it L'avatar di Bugu
    Registrato dal
    Nov 2007
    Messaggi
    871
    Originariamente inviato da nicola75ss
    Mi sembra corretta.
    Aggiungerei giusto la clausola di ordinamento a fine query

    order by Format(data,"dd")

    Funziona.
    Ho inserito anche l'order.
    Grazie!
    Linux User
    ---------
    Solo due cose sono infinite: l'universo e la stupidità umana, e non sono tanto sicuro della prima.

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.