Calcolo su due dati nella stessa colonna

di Anonimizzato24718 il
4 risposte
Buongiorno a tutti, premetto che sono un utente piuttosto basic di MS Access. Dovrei effettuare dei calcoli tra due dati presenti nella stessa tabella e nella stessa colonna, ma su righe diverse. Nello specifico ho una tabella con cod/data/prezzo e devo calcolarne il rendimento, ossia, per ogni singola data e per ogni codice devo calcolare prezzo data n / prezzo data n - 1.
Grazie a tutti per l'aiuto
marco

4 Risposte

  • Questione meno banale di quanto sembri... non essendo un Foglio di Excel.
    Quando parli di Precedente, questa affermazione racchiude in se già molti concetti..., precedente presuppone un'ordinamento su uno o più campi... tu ad esempio con precedente a cosa ti riferisci...?

    Se fosse il campo [Data] riferita allo stesso [cod], per poter ricavare il valore del prezzo dovresti usare la tecnica delle Tabelle Derivate, quindi una SubQuery che, estragga 1 solo record usanto TOP 1, della Tabella oggetto di ricerca, in cui hai [COD]=TuoCod e Data<TuaData...

    Se non hai grandi esperienze di SQL, puoi semplificarti le cose così
    
    SELECT Cod, Data, Prezzo, Prezzo/ccur(NZ(DMax("Prezzo","NomeTabella","Cod=" & [Cod] & " AND Data<" & CLng(Data)),Prezzo)) AS PrezzoN1
    FROM NomeTabella;
    Attenzione che la doce il Prezzo precedente non esiste ho forzato il valore attuale, quindi avrai Rapporto 1....

    Modifica [NomeTabella]
  • Grazie mille! Confermo che, data una tabella con codici (immagina azioni, obbligazioni ecc), data e prezzi, con un prezzo per ogni data e per ogni codice (es. prezzi giornalieri dei titoli inseriti) l'operazione da fare è:
    (prezzo del giorno n / prezzo del giorno n-1) - 1 per ogni titolo identificato con un suo codice.
    Non ho alcuna dimestichezza con SQL e non sono certo di riuscire ad inserirlo, ma ci provo.
    Grazie
    m
  • Preferirei usare Access che mi permetterebbe, in maniera stabile, di fare dei controlli automatizzati sulla base dati. Una volta stabilite le regole basta lanciare il comando a prescindere dal contenuto del DB (ferme restando, ovviamente, le strutture delle tabelle).
    m.
Devi accedere o registrarti per scrivere nel forum
4 risposte