Ordinare file CSV e creare una collona calcolata

di il
2 risposte

Ordinare file CSV e creare una collona calcolata

Ciao a tutti,

avrei un quesito da porvi , attualmente da SQL scarico tutte le informazioni e le salvo in formato csv, all'interno di questo file ho numerose colonne e records (40/50k).

la prima fase [la seconda la posto se risolvo la prima ] sta nell'ordinare il file in base a due parametri:

1 - data di spedizione colonna[dalla più recente alla meno recente]
2 - codici uguale [ordinati in base alla data di spedizione]

allego una foto esempio per far capire meglio ( immaginate che siano separate dalla virgola)

le prime due righe ( gialle)
  • la prima riga ha la data di spedizione rispetto alla seconda più recente
    le prime due righe hanno al colonna "codice" uguale

    la terza riga ha una data più recente rispetto alla quarta
    il codice della terza e della quarta è uguale

    in caso di tre o maggiore di tre il ragionamento e molto simile quindi
    la prima riga avrà al data di spedizione più recente rispetto alla terza e nella colonna codice saranno tutti uguali
spero che qualcuno mi possa aiutare in questo dilemma , io questo topic l'ho pubblicato nella sezione java ma se pensate che sia meglio spostarlo nella sezione SQL in quanto più semplice nel ricavare il risultato, chiedo ai moderatori del forum di spostarlo senza problemi.


vi ringrazio in anticipo per l'aiuto

Luca





vi ringrazio in anticipo

Luca
Allegati:
28869_5785a17ac630ccd5d40f2baa054a5e81.png
28869_5785a17ac630ccd5d40f2baa054a5e81.png

2 Risposte

  • Re: Ordinare file CSV e creare una collona calcolata

    luca121 ha scritto:


    la prima fase sta nell'ordinare il file in base a due parametri:
    La questione sarebbe: in quale punto/momento devi fare questo ordinamento??

    A livello di SQL? A livello di Java poco prima di generare il csv? Dopo che hai scritto il csv (quindi bisogna rileggerlo)?
  • Re: Ordinare file CSV e creare una collona calcolata

    Ciao andbin,

    scusa mi ero dimenticato di scriverlo,attualmente il programma in fase di avvio scarica dal DB tutti i dati e genera il file csv, quindi ci sono due alternative:

    1- modificare la query da sql in modo tale che i dai possano essere ordinati direttamente da sql
    2- rileggere il file creato prima e riordinare i dati in un secondo momento.

    forse se spiego la seconda parte può aiutare nel scegliere la via più semplice.

    la seconda parte consiste nell'aggiungere una colonna calcolata su due colonne e righe diverse [prendo le prime due righe come esempio]

    1- prima riga a ha data di spedizione più recente rispetto la seconda [come spiegato prima]
    2- nella seconda riga in una colonna diversa è presente una data di ricezione [che non deve essere presa in considerazione nella prima fase]

    il calcolo dev'essere

    se("data di spedizione[prima riga]" - "data ricezione[seconda riga]" >90;"si";"no")

    dove il risultato della condizione deve essere riportato sulla prima riga gialla mentre sulla seconda il calcolo non deve essere eseguito ma deve apparire solo la scritta 1R

    in caso di 3 codici uguali o più la logica è molto simile nel senso:

    prima riga --> se("data di spedizione[prima riga]" - "data ricezione[seconda riga]" >90;"si";"no")
    seconda riga --> se("data di spedizione[prima riga]" - "data ricezione[seconda riga]" >90;"si";"no")
    terza riga nessun calcolo riporto 1R

    spero di essermi spiegato

    grazie ancora

    Luca
Devi accedere o registrarti per scrivere nel forum
2 risposte