Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 37
  1. #1
    Utente di HTML.it L'avatar di Elena78
    Registrato dal
    Oct 2001
    Messaggi
    535

    SQL: Select conta e group by

    Devo effettuare una select che mi raggruppi la conta di un dato diviso per data.

    Esempio:


    data_contatto dato1 dato2 dato3
    01/06/2003 2 3 54
    02/06/2003 21 2 12


    Insomma il giorno 01/06/2003 ci sono 2 record con il dato1, 3 col dato2 e così via..

    Ho provato ad effettuare questa select:

    select dato,count(*),data_chiamata from recall47 where colonna60='20030407'
    group by dato, data_chiamata


    Ma così facendo non mi raggruppa i i dati per dato ma mi fa un elenco tipo:

    dato1 1 01/06/2003
    dato1 1 02/06/2003


    Come posso impostare a select???

    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    ehm...supponiamo che hai 2 record con la stessa data:
    codice:
    Data        campo1  campo2  campo3
    01/01/2003    2        1       1 
    01/01/2003    4        2       5
    vorresti ottenere un solo record del tipo
    codice:
    Data        campo1  campo2  campo3
    01/01/2003     6      3       6

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    che casini devi fare :quote: :quote:

    select trunc(data_chiamata), sum(decode(dato, 'dato1', 1, 0)) dato1, sum(decode(dato, 'dato2', 1, 0)) dato2, sum(decode(dato, 'dato3', 1, 0)) dato3
    from recall47
    where colonna60='20030407'
    group by trunc(data_chiamata)

  4. #4
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    perchè casini, floyd?
    codice:
    SELECT CampoData, SUM(Campo1)TotC1, SUM(Campo2) TotC2 FROM MiaTabella Group By CampoData

  5. #5
    Utente di HTML.it L'avatar di Elena78
    Registrato dal
    Oct 2001
    Messaggi
    535
    Originariamente inviato da darkblOOd
    perchè casini, floyd?
    codice:
    SELECT CampoData, SUM(Campo1)TotC1, SUM(Campo2) TotC2 FROM MiaTabella Group By CampoData
    No io non ho tre campi da estrarre.. i valori di un solo campo raggruppati per data e per esito

    I campi sono

    1) campo data
    2) campo esito

    Il campo esito può contenere + valori, ovviamente

    Devo fare la conta di questi singoli valori e raggrupparli per data ...


    @ Floyd: da errore il tuo script, forse per parentesi, spetta che controllo

  6. #6
    Utente di HTML.it L'avatar di Elena78
    Registrato dal
    Oct 2001
    Messaggi
    535
    Originariamente inviato da floyd
    che casini devi fare :quote: :quote:

    select trunc(data_chiamata), sum(decode(dato, 'dato1', 1, 0)) dato1, sum(decode(dato, 'dato2', 1, 0)) dato2, sum(decode(dato, 'dato3', 1, 0)) dato3
    from recall47
    where colonna60='20030407'
    group by trunc(data_chiamata)
    ok, il tuo script funziona, solo che quella cazzo di data e quella che ho convertito ieri, quindi al poso di select trunc(data_chiamata) ci devo mettere la stringa di conversione e diventa così:

    select trunc(to_char(new_time( to_date('01011970','ddmmyyyy') + 1/24/60/60 * call_time, 'GMT', 'EDT' ), 'dd-mm-yyyy hh24:mi:ss' )

    solo che così da errore

    si posiziona sul call_time dopo l'asterisco e dice :

    NOT A GROUP BY EXPRESSION

    Questa è tutta la select:

    select trunc( to_char(new_time( to_date('01011970','ddmmyyyy') + 1/24/60/60 * call_time, 'GMT', 'EDT' ), 'dd-mon-yyyy hh24:mi:ss' ) ),sum(decode(col_esito, 'A1B19', 1, 0)) A1B19, sum(decode(col_esito, 'A1', 1, 0)) A1, sum(decode(col_esito, 'A4', 1, 0)) A4, sum(decode(col_esito, 'A1B2', 1, 0)) A1B2,sum(decode(col_esito, 'A1B3', 1, 0)) A1B3,sum(decode(col_esito, 'A1B10', 1, 0)) A1B10,sum(decode(col_esito, 'A1B12', 1, 0)) A1B12,sum(decode(col_esito, 'A1B11', 1, 0)) A1B11,sum(decode(col_esito, 'A1B4', 1, 0)) A1B4,sum(decode(col_esito, 'X3', 1, 0)) X3,sum(decode(col_esito, 'A1B5', 1, 0)) A1B5
    from recall47
    where colonna60='20030407' group by trunc(call_time)

  7. #7
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    togli il trunc e metti to_char(new_time( to_date('01011970','ddmmyyyy') + 1/24/60/60 * call_time, 'GMT', 'EDT' ), 'dd-mon-yyyy hh24:mi:ss' ) nel group by

  8. #8
    Utente di HTML.it L'avatar di Elena78
    Registrato dal
    Oct 2001
    Messaggi
    535
    Originariamente inviato da floyd
    togli il trunc e metti to_char(new_time( to_date('01011970','ddmmyyyy') + 1/24/60/60 * call_time, 'GMT', 'EDT' ), 'dd-mon-yyyy hh24:mi:ss' ) nel group by
    mi da lo stesso errore

    ma il trunc lo tolgo da entrambi i posto vero?? Anche nel grooup by...

    o devo lasciarlo nella select e toglierlo solo nel group by?? :master:


    E tra l'altro i valori che mi restituirebbe sono tutti zero.. c'è qualcosa che non va :master:

  9. #9
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da Elena78
    ok, il tuo script funziona, solo che quella cazzo di data e quella che ho convertito ieri, quindi al poso di select trunc(data_chiamata) ci devo mettere la stringa di conversione e diventa così:

    select trunc(to_char(new_time( to_date('01011970','ddmmyyyy') + 1/24/60/60 * call_time, 'GMT', 'EDT' ), 'dd-mm-yyyy hh24:mi:ss' )

    solo che così da errore

    si posiziona sul call_time dopo l'asterisco e dice :

    NOT A GROUP BY EXPRESSION

    Questa è tutta la select:

    select trunc( to_char(new_time( to_date('01011970','ddmmyyyy') + 1/24/60/60 * call_time, 'GMT', 'EDT' ), 'dd-mon-yyyy hh24:mi:ss' ) ) call_time,sum(decode(col_esito, 'A1B19', 1, 0)) A1B19, sum(decode(col_esito, 'A1', 1, 0)) A1, sum(decode(col_esito, 'A4', 1, 0)) A4, sum(decode(col_esito, 'A1B2', 1, 0)) A1B2,sum(decode(col_esito, 'A1B3', 1, 0)) A1B3,sum(decode(col_esito, 'A1B10', 1, 0)) A1B10,sum(decode(col_esito, 'A1B12', 1, 0)) A1B12,sum(decode(col_esito, 'A1B11', 1, 0)) A1B11,sum(decode(col_esito, 'A1B4', 1, 0)) A1B4,sum(decode(col_esito, 'X3', 1, 0)) X3,sum(decode(col_esito, 'A1B5', 1, 0)) A1B5
    from recall47
    where colonna60='20030407' group by trunc(call_time)
    prova a mettere come alias di quel campo calcolato call_time (l'ho scritto in rosso)

  10. #10
    Utente di HTML.it L'avatar di Elena78
    Registrato dal
    Oct 2001
    Messaggi
    535
    Originariamente inviato da darkblOOd
    forse manca la parentesi che ho aggiunto in verde?
    ehm non vedo verdi...

    cmq non ritorna valori.. cioè la select non va in errore se non decodifico la data però mi torna tuttii valori dei campi a ZERO

    Ot: già mangiato??

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.