Valori estremi

di il
21 risposte

21 Risposte - Pagina 2

  • Re: Valori estremi

    Se hai un dato ogni 10 minuti e vuoi il valore massimo riferito al giorno ti basta impostare la query utilizzando Max(valorepioggiaogni10minuti) con il group by day(campodataora).
    Ovviamente la query va scritta rispettando la sintassi SQL.
    Poi vedendo i dati magari arriviamo alla query corretta.
  • Re: Valori estremi

    Questo è un estratto del database
  • Re: Valori estremi

    Se il tuo "massimo giornaliero" deve essere valutato in ciascun intervallo dei "10 minuti", dal momento che la tabella "Tabella_Pluvio_Cumulata" ha i campi, di ciascun record (nel valore nell'intervallo dei dieci minuti giornalieri) e questi dati sono cumulati (per ciascuna stazione); pertanto devi riportarli nella loro forma originaria.
    Quindi procedere ad effettuare la differenza fra tutti gli intervalli dei 10 minuti giornalieri (da [00:00] a [24:00] dei vari campi fino al termine della giornata e ciò per tutte le occorrenze interessate, dopodiché determinare il valore massimo nella giornata.

    In Access una soluzione è quella di procedere implementando un algoritmo (tramite codice VBA) che scansioni il recordset e, per ogni record, proceda a determinare la differenza fra l valori dei vari campi, stabilendo quale sia il valore massimo nell'intervallo giornaliero (memorizzazione il dato).

    Quale alternativa, puoi utilizzare anche Excel in modo da importare o collegare i dati, quindi in un nuovo foglio effettui la differenza (con il foglio dei dati originari) fra una cella e la successiva (in orizzontale patendo dal campo [00:00] con [00:10] ) estendo la formula fino alle [24:00] (per ogni record); dopodiché sull'intero insieme dei dati, infine determini il valore massimo con la funzione fornita a corredo.
  • Re: Valori estremi

    E come faccio ad impostare questo algoritmo? (forse è chiedere troppo! )
  • Re: Valori estremi

    Guarda, non si fanno compiti a casa! Se vuoi farti parte diligente, devi approfondire gli argomenti; magari (per farti una idea) puoi partire da questi link:


    https://www.myclads.com/GRdjxojR
    https://stackoverflow.com/questions/5864160/code-to-loop-through-all-records-in-ms-access/35670859

    Altrimenti, come detto sopra, puoi impiegare Excel in quanto implementabile in modo interattivo.
  • Re: Valori estremi

    Grazie mille! =)
  • Re: Valori estremi

    Il concetto è quello espresso in sintesi sotto
            
            For intCampo = 4 To rs.Fields.Count - 1
            'ciclo sui campi dove sono riportati i valori rilevati
                If intCampo = 4 Then
                    'se il campo è il primo da esaminare memorizza nella varibile 'intRilevamentoPrecedente' il valore attuale del rilevamento che verrà usato poi per un controllo successivo
                    intRilevamentoPrecedente = rs.Fields(intCampo)
                Else
                    'se il campo è successivo al primo da esaminare
                    If intQuantitàMax < (rs.Fields(intCampo) - intRilevamentoPrecedente) Then
                        'se il valore della variabile 'intQuantitàMax' attualmente memorizzato è
                        'inferiore alla differenza fra quello del campo attuale in esame e quello precedente
                        'aggiornerà il valore della variabile 'intQuantitàMax' con il nuovo dato
                        'dalla differenza fra quello del campo attuale in esame e quello precedente
                        intQuantitàMax = (rs.Fields(intCampo) - intRilevamentoPrecedente)
                        strOraRilevamentoQuantitàMax = rs.Fields(intCampo).Name
                    End If
                    'se memorizza nella varibile 'intRilevamentoPrecedente' il valore attuale del rilevamento che verrà usato poi per un controllo successivo
                    intRilevamentoPrecedente = rs.Fields(intCampo)
                End If
            Next
            If intQuantitàMax = 0 Then
                'emette il messaggio di mancate precipitazioni
                MsgBox "Per la ricerca impostata non risultano precipitazioni.", vbInformation, "Risultato"
            Else
                'emette il messaggio con l'indicazione della quantità massima di precipitazione e l'orario in cui si è verificata
                MsgBox "Il rilevamento di massima Precipitazione è di " & intQuantitàMax & "mm. verificatosi alle ore " & strOraRilevamentoQuantitàMax, vbInformation, "Risultato"
            End If
    
    dove controlla se fra i vari intervalli orari ci sono state delle precipaitazioni e prendendo quella di valore massimo.
    Qui https://app.boolebox.com/app/index.html?obj=360031003400370033003900360039003600300035003900380031003400300035003900 trovi un piccolo esempio.
Devi accedere o registrarti per scrivere nel forum
21 risposte