Condividi tramite

Raggruppa per data e somma valori

Anonimo
2014-04-19T18:33:55+00:00

Buongiorno,

devo implementare una "tabella1" con circa 300mila records e 110 colonne:

una delle colonne contiene il campo "data"

Obiettivo:

Creare una query/tabella che raggruppi dati inseriti per i giorni della settimana "da lunedì fino a mercoledì" e "da giovedì fino a domenica", addizionando i valori dei campi dei records. doveil valore "--" è uguale a "0" quindi per es

cod nome rif data macchina1 macch 2 macch 3 macch4 …etc
1234 tubo 5 14/04/2014 5 2 4 4
87558 vite 4 14/04/2014 4 1 -- 2
1234 tuba 5 15/04/2014 3 2 4 3
1234 tubi 6 16/04/2014 -- 3 3 2
46465 asta 3 16/04/2014 4 5 6 2
1234 tuba 5 17/04/2014 2 4 4 1
1234 tubi 4 18/04/2014 3 3 -- 1
1234 tuba 3 19/04/2014 1 5 4 1
1234 tubi 5 20/04/2014 -- 0 5 3
35667 molla 8 20/04/2014 6 2 7 2

vorrei ottenere:

1234 14/04/2014 8 7 11 9
87558 14/04/2014 4 1 0 2
1234 17/04/2014 6 12 13 6
46465 17/04/2014 4 5 6 2
95667 17/04/2014 6 2 7 2

avete idee per risolvere?

Grazie per l'aiuto

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2014-04-20T08:06:24+00:00

Ok, allora si tratta di una normalissima query di raggruppamento in cui bisogna spostare la data al lunedì o al giovedì dela settimana.

Questo è il codice SQL della query, ho usato la Funzione DatePart per generare la data riferimento.


SELECT cod, [Data]-(DatePart("w",[Data],2)-1)+IIf(DatePart("w",[Data],2)<4,0,3) AS DataRif,

            Sum(Val([macchina1])) AS M1,

            Sum(Val([macchina2])) AS M2,

            Sum(Val([macchina3])) AS M3,

            Sum(Val([macchina4])) AS M4

FROM Tabella1

GROUP BY cod, [Data]-(DatePart("w",[Data],2)-1)+IIf(DatePart("w",[Data],2)<4,0,3)

ORDER BY [Data]-(DatePart("w",[Data],2)-1)+IIf(DatePart("w",[Data],2)<4,0,3), cod;


Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

11 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-04-20T05:10:34+00:00

    Salve,

    ha ragione, ho riportato dati errati, perchè trascritti manualmente:

    ho trascritto il codice 35667 come 95667

    e il codice 46465 con data 16/04/2014, rimane con data 16, invece che come riportato nella tabella 2:

    1234 14/04/2014 8 7 11 9
    87558 14/04/2014 4 1 0 2
    1234 17/04/2014 6 12 13 6
    46465 16/04/2014 4 5 6 2
    35667 17/04/2014 6 2 7 2

    grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-04-20T05:07:47+00:00

    Salve,

    e grazie per il supporto.

    i dati variano negli anni e nei mesi ed il raggruppamento è necessario per settimana.

    Quindi si raggruppano i dati per settimana, raggruppando il lun-mer, sotto la data del lunedì, e il mer-giov sotto la data del giovedì.

    il valore "--" è di testo.

    credo che nell'importazione,Access lo valuterà come errore, quindi avremo valore vuoto.

    In attesa di riscontro, ringrazio.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-04-19T19:20:19+00:00

    Ciao Andrea78m,

    umm.. credo di non aver capito, mi sembra che la descrizione non sia  coerente con il risultato mostrato, ad esempio:

    perché il codice 35667 non compare nel risultato ??

    perché il codice 46465 con data 16/04/2014 appartenente al gruppo lunedì/mercoledì viene attribuito al gruppo giovedì/domenica con data 17/04/2014 ??

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-04-19T19:06:46+00:00

    Alcune domande:

    Nel tuo esempio i dati fanno riferimento solamente a 1 settimana.

    Questo è il caso reale oppure è una limitazione dell'esempio ???

    e se si tratta di una limitazione dell'esempio allora quello che vuoi ottenere

    lo vuoi distinto per settimane oppure possiamo sommare i valori

    di martedi 8 aprile con quelli di martedi 15 aprile ???

    altra domanda

    se nei valori che vuoi sommare hai dei "--" significa che sono in formato testo

    ci dai conferma ?

    .

    La risposta è stata utile?

    0 commenti Nessun commento