Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [mysql, sqlite] Group By e intervelli di date

    Ho una tabella con i seguenti campi: ID, id_utente, data, importo.

    Ho 2 date, vorrei avere per ogni utente (ogni utente viene identificato da un id univoco situato in "id_utente") la somma dei valori inseriti del campo "importo" relativo a tutti i record che presentano una "data" compresa tra le 2 date a me note.

    Credo che sia possibile usando in qualche modo Group By ma non ho capito come.

    Mi va bene una sql per MySql o SQLite.

    Speso possiate aiutarmi, grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    codice:
    select
    tabella.id_utente, 
    sum(tabella.importo)
    from tabella
    where tabella.data >= :Data_Inizio and tabella.data <= :Data_Fine and
    group by 
    tabella.id_utente
    ciao

  3. #3
    Ora la provo subito.

    Un'altra cosa, ammettiamo che io non abbia 2 date, ma alcuni intervalli di date, ad esempio data1, data2, data3, data4, data5, data6 e volessi avere lo stesso risultato del primo post ma per tutti i miei intervalli ovvero per data1-data2, data3-data4, data5-data6. Posso farlo con una singola query o devo necessariamente inviare 3 query distinte?

    Grazie ancora.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    al limite puoi fare una union di tre query diverse.

    codice:
    select
    'tipo1' tipo,
    tabella.id_utente, 
    sum(tabella.importo)
    from tabella
    where tabella.data >= :data_Inizio1 and tabella.data <= :data_Fine1 and
    group by 
    tabella.id_utente
    
    union
    
    select
    'tipo2' tipo,
    tabella.id_utente, 
    sum(tabella.importo)
    from tabella
    where tabella.data >= :data_Inizio2 and tabella.data <= :data_Fine2 and
    group by 
    tabella.id_utente
    
    union
    
    select
    'tipo3' tipo,
    tabella.id_utente, 
    sum(tabella.importo)
    from tabella
    where tabella.data >= :data_Inizio3 and tabella.data <= :data_Fine3 and
    group by 
    tabella.id_utente
    ciao

    ps.: la sintassi per i parametri e' quella per interbase/firebird, adattala alle tue esigenze.

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.