settimana scorrevoleBuongiorno a tutti,
Ho un database che contiene dati dall'inizio del 2019 ad aprile 2023.
Ho creato uno script che quando lo eseguo di nuovo aggiunge nuovi dati per il 2023 ogni settimana.
Per evitare che questo file diventi troppo pesante, vorrei che quando riavvio lo script all'inizio della settimana sia possibile eliminare una settimana continua.
Ad esempio oggi siamo nella settimana 21 (W21) del 2023. Quando eseguo lo script oggi, posso eliminare la S1 del 2019 e quindi aggiungere la S21 del 2023.
La prossima settimana saremo nella S22 2023, lo script aggiungerà questa nuova settimana, allo stesso tempo vorrei poter eliminare la S2 del 2019, e così via...
Tuttavia, se eseguo lo script più volte nella stessa settimana, non dovrebbe eliminare diverse settimane consecutive.
Esempio : Se eseguo lo script 3 volte in S21 2023, elimina solo S1 2019 e non S1/S2/S3 2019 (perché ho eseguito lo script 3 volte)
Ho una colonna "Data di inizio" nel mio database che sarà utile per lo sviluppo dello script. Ecco una panoramica della colonna sottostante:

Grazie per l'aiuto
Accesso ai datiMiscelazione e pulizia dei datiRe: settimana glissanteNon conosco lo scopo della tabella dei dati aggiornata, quindi questo suggerimento potrebbe non essere utile. Invece di eliminare le righe, puoi calcolare uno stato di riga in sequenza per le righe escluse in una colonna formula o con uno script. Hai detto che vuoi evitare che la tabella dei dati diventi troppo pesante, quindi questo approccio potrebbe non essere adatto al tuo scopo.
Re: settimana mobilePer evitare di appesantire la tabella dei dati, il mio obiettivo è aggiungere nuovi dati ma in compenso eliminare i "vecchi" dati. Ciò consentirebbe alla tabella di dati di avere un equilibrio rispetto alla dimensione del file.
Vorrei scrivere una sceneggiatura per fare quello che ho detto nel mio primo post.
Re: settimana glissanteStai estraendo i dati da un database in una tabella di dati JMPM? In tal caso, è possibile utilizzare una clausola WHERE per specificare il periodo.
Re: settimana glissantePrendi in considerazione l'utilizzo della funzione Incremento data. In questo esempio, Incremento data conta 230 settimane nel passato e restituisce la data del primo giorno di quella settimana (domenica). Quindi selezioniamo semplicemente tutte le righe con date di inizio precedenti a quella data e le eliminiamo. Ogni singola settimana in cui esegui lo script, la data restituita da Incremento data sarà la stessa, quindi puoi aggiornare la tabella dei dati più volte alla settimana senza attivare l'eliminazione indesiderata dei dati.
Names Default to Here( 1 );
deleteDate = Date Increment( Today(), "Week", -230, "start" );
Data Table( "Rolling Week.jmp" ) << Select Where( :Start Date < deleteDate );
Data Table( "Rolling Week.jmp" ) << Delete Rows;