Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281

    estrarre dati con date diverse

    Ciao a tutti

    Poniamo di avere una tabella di questo tipo

    id
    descr
    importo
    data

    data è in formato aaaammdd

    Devo estrarre la somma dei record per un periodo poniamo quelli dell'anno 2005 e confrontarli a video con quelli del 2006.

    Secondo voi. devo creare due query differenti oppure c'è un modo per estrarre tutto assieme?

    Es.
    Estrazione somma 2005 e confronto con somma 2006
    codice:
    somma            data
    
    1000               2005
    2000               2006

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    select sum(importo),left(data,4) as anno from tabella group by left(data,4)

    edit. se ti servono solo quei due anni

    select sum(importo) as somma,left(data,4) as anno from tabella group by anno
    having anno in ("2005","2006")

  3. #3
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    grazie mille

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    prego.

  5. #5
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    Eccoci ancora qui.

    Se invece volessi confrontare un periodo dell'anno, per esempio dal 1/1/2005 al 1/3/2005 allo stesso perido del 2006, come posso fare?

  6. #6
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    comunque mysql mi da errore di sintessi proprio con having anno in ("2005","2006")

    cavolo

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    prova così

    select sum(importo) as somma,year(data) as anno from tabella
    where year(data) in ("2005","2006")
    group by anno


    edit. rileggendo il thread se hai le date nel formato aaaammdd non puoi usare funzioni come year. Usa ancora left per ricavare l'anno.

  8. #8
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    Originariamente inviato da nicola75ss
    prova così

    select sum(importo) as somma,year(data) as anno from tabella
    where year(data) in ("2005","2006")
    group by anno
    sembra funzionare. devo testarla bere.

    grazie mille ancora

    per il confronto tra periodi invece come posso fare?

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    A me funziona anche la query con l'having. Dipenderà dalla versione di mysql.
    In pratica cosa devi ottenere, la somma sia per il 2005 che per il 2006 relativa solo al periodo 1/1-1/3 ?

  10. #10
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    Originariamente inviato da nicola75ss
    A me funziona anche la query con l'having. Dipenderà dalla versione di mysql.
    In pratica cosa devi ottenere, la somma sia per il 2005 che per il 2006 relativa solo al periodo 1/1-1/3 ?
    si esatto.

    la versione è la 4.0.25

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