Comparare due database e aggiornarne uno
Nel mio lavoro ho iniziato ad utilizzare etichette elettroniche. Il mio gestionale mi permette unicamente di generare un csv con i prodotti in ordine alfabetico tipo
Nome, prezzo originale, prezzo scontato, percentuale di sconto, ecc. Il software di gestione vuole però che ad ogni riga, e quindi prodotto, sia associato un id numerico univoco, tipo ID, nome, prezzo originale, ecc. Il problema è che ogni volta introduco un prodotto nuovo questo andrà inserito in ordine alfabetico andando a spostare gli ID di tutti i prodotti, non consentendomi l’importazione automatica di un nuovo csv. Esiste un modo per automatizzare la comparazione di due Spreadsheet e di aggiornare il nuovo in automatico? Sono alla ricerca di qualcuno, anche a pagamento, che mi aiuti a risolvere il problema. Grazie a tutti |
metti un esempio di cosa vuoi ottenere così si capisce meglio
|
Quote:
Nome, prezzo originale, prezzo scontato, percentuale di sconto Bounty, 1.00, 1.00, 0 Mars, 1.00, 0.90, 10 Twix 1.50, 1.20, 20 File 2 input software esl ID, nome, prezzo originale, prezzo scontato, percentuale di sconto 1, Bounty, 1.00, 1.00, 0 2, Mars, 1.00, 0.90, 10 3, Twix 1.50, 1.20, 20 Ora mettiamo che inserisco un nuovo prodotto Raffaello il gestionale genera un csv Bounty, 1.00, 1.00, 0 Mars, 1.00, 0.90, 10 Raffaello, 0.50, 0.50, 0 Twix 1.50, 1.20, 20 Che se importo pari pari avrà un risultato 1, Bounty, 1.00, 1.00, 0 2, Mars, 1.00, 0.90, 10 3, Raffaello, 0.50, 0.50, 0 4, Twix 1.50, 1.20, 20 Andandomi a cambiare gli ID di tutte le righe dopo “Raffaello” |
chi decide la posizione dell'ultimo inserimento?
Mi aspettavo che Raffaello fosse l'ultima voce e quindi il problema non si poneva. |
l'ID numerico è la chiave primaria (univoca) della tabella articoli?
Se viene inserito un nuovo articolo, viene inserito in ordine alfabetico causando un rename dei record? Ho capito male? :mbe: |
Il mio problema è proprio quello. Ogni volta che genero il csv dal gestionale è prodotto in ordine alfabetico rendendomi impossibile automatizzarlo
|
Quote:
|
quindi il gestionale genera il csv senza ID ed in ordine alfabetico, ma non in ordine di inserimento.
Non mi è chiaro se a te l'output interessa mantenendo l'ordine di inserimento, magari attraverso data e ora che non vedo nel csv generato dal gestionale. |
Quote:
E parlo di un database di 18mila righe circa con 650 assegnazioni ID-prodotto. Sono anche disposto a rifare tutto da capo a patto di trovare un modo di automatizzare il tutto. |
Quote:
E quando inserisci un nuovo articolo, il gestionale non rinomina l'ID, ma è solo una impressione in quanto ti ritrovi con l'ordine alfabetico. Mi viene da pensare che se il gesionale producesse un CSV sena riordino, avresti a disposizione una lista ordinata per inserimento: è così? |
Non puoi chiedere al supporto del gestionale un export in cui includano anche l'id ?
|
Quote:
Quote:
|
se il gestionale è tuo, si può sempre accedere via SQL e fare ciò che si vuole.
|
Quote:
|
Quote:
1, Bounty, 1.00, 1.00, 0 2, Mars, 1.00, 0.90, 10 3, Twix 1.50, 1.20, 20 4, Raffaello, 0.50, 0.50, 0 se è cosi si può ottenere con uno script in python non troppo complesso ovviamente si puo fare più o meno in qualsiasi linguaggio di programmazione |
il problema è che il gestionale gli genera un output senza ID e riordina in base al nome dell'articolo. In questo modo perdi l'ordine temporale degli inserimenti. Senza mettere le mani nel DB sei obbligato a tenere una traccia separata di quello che inserisci.
|
non so la logica dovrebbe essere abbastanza semplice ...
carico i 2 files csv in 2 linked list scorro in modo sequenziale la prima lista, controllo se il prodotto è presente nella seconda lista, se si aggiorno i dati di prezzo, e sconto se no aggiungo un nuovo elemento alla fine della lista creando un ID in ordine progressivo di inserimento salvo la seconda lista sul disco chiaramente definire tutti i dettagli dell'implementazione richiede un pochino di temp ma niente di trascendentale. Si potrebbe ragionare un pochino sulle prestazioni ma per poche migliaia di record non ci sono problemi. |
sempre che gli articoli non vengano mai rimossi dal DB. Solitamente, nei DB seri, non accade mai che un articolo viene cancellato, rimane come storico e si continua ad aggiungere.
Se ha un file di storico che conserva sin dall'inizio, anche il "semplice" excel può assolvere a questo compito. |
Quote:
Si può fare anche con macro excel ma è un po meno automatizzato, con uno script basterebbe una riga di comando per lanciarlo. |
Quote:
Scrivimi in MP |
Tutti gli orari sono GMT +1. Ora sono le: 21:51. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.