Forum >> Programmazione Python >> Database >> Verifica su 3 tabelle su DB SQL

Pagina: 1

Buongiorno,
premetto che sono nuovo del forum ma soprattutto di Python pertanto siate buoni.. ;) ;)

Ho un quesito da porvi:

Ho un distributore (tipo merendine per intenderci) che gira con un DB SQL. Ha un suo software di gestione ma per il mio modo di fare è incompleto e volevo espanderlo. In pratica nel DB ci sono essenzialmente 3 tabelle sulle quali recupero i dati.

Su tutte e tre c'è il ""codice prodotto", e poi sulle altre ci sono "qta max", "qta disponibile" e "qta per confezione".




In pratica devo leggere dalle 3 tabelle il codice prodotto e andare a fare un calcolo per il riordino del prodotto che poi andrà a recuperare altri valori dalla tabella tipo fornitore e mail e girerà l'ordine in automatico.

Io ho fatto varie prove, non mi da errori ma mi stampa il codice da ordinare 2 volte..

Forse sto usando lo strumento sbagliato..




Questo è l'estratto dello script:





query1 = ("SELECT BARCODE,MPC,QPC FROM stores ")

cursor.execute (query1)

dati1 = cursor.fetchall()




query2 = ("SELECT BARCODE,LEVEL_ALERT FROM alert_sub_store")

cursor.execute (query2)

dati2 = cursor.fetchall()




query3 = ("SELECT BARCODE,QTA_PACKAGE FROM prodotti")

cursor.execute (query3)

dati3 = cursor.fetchall()





for raw1 in dati1:

for raw2 in dati2:


for raw3 in dati3:

if raw10 == raw20 == raw30:

if raw11 - raw12 > raw31:

print ('ORDINARE: ' + raw30,' Numero: ',+ int(((raw11-raw12))/raw31),' pezzi.')

cursor.close()

conn.close()

print("Connection Closed")





Accetto spunti di riflessione, non soluzioni immediate: devo capire dove sbaglio.

Grazie 1000




Ale

















--- Ultima modifica di AlexZey in data 2021-12-22 15:50:55 ---
Ciao caro, benvenuto. :birrame:

Prima alcune considerazioni:
A. Usa sempre il tasto code quando posti codice, oppure strumenti esterni di formattazione. In Python non si prescinde da una corretta esposizione del codice;
B. Aggiungi sempre più informazioni possibili, come la versione del linguaggio, le librerie usate, il tipo di DB, etc...

Ora visto che hai il BARCODE comune in tutte le tabelle, non ti conviene fare un'unica interrogazione al DB usando qualche tipo di join? Credo che ti faciliterebbe di molto il lavoro. Certo anche interrogando le singole tabelle otterrai un risultato, non dico il contrario, ma solo sarebbe tutto più macchinoso. Non si capisce molto bene il tuo codice perché non lo hai formattato nella maniera corretta, ma li flusso potrebbe essere una cosa simile (se non vuoi fare una sola interrogazione):
A. Tratta ogni singola tabella ed ottieni le informazioni richieste, manipolando un oggetto a tuo piacere;
B. Intreccia i dati ottenuti tramite il tuo BARCODE;
C. Manda i vari avvisi.

Ma ancora una volta, non vedo perché non dovresti svolgere l'attività in fase di interrogazione, fai fare un po' di lavoro al DB altrimenti si annoia.

Tifo per te, si tratta di un'attività che riuscirai a svolgere al meglio, ne sono certo, condividi con tutti noi il tuo trionfo.

Cya


Pagina: 1



Esegui il login per scrivere una risposta.