Buongiorno, sono un principiante che si è costruito un database (su input di un amico) che da diversi anni, bene o male, mi fa quello che mi serve anche se probabilmente è zeppo di errori di impostazione.
In questi giorni sto cercando di aggiungere una verifica sul pagamento delle fatture ma sono arrivato ad un punto fermo.
Per semplificare ho creato un semplice database dove provo a realizzare la stessa cosa:
TblMacchine
TblVerifiche
TblFatture
Le relazioni sono uno a molti tra macchine e verifiche e uno a molti fra fatture e verifiche, con integrità referenziale.
Ad ogni macchina sono associate più fatture (tante quante sono le verifiche che si ripetono nell tempo).
Io vorrei creare una query nella quale ogni record contiene l'id della macchina e il relativo controllo (fatture regolarmente pagate o no).
Riesco a farlo con una query di raggruppamento ma questo mi crea il problema che la query non è più aggiornabile e non posso modificare o aggiungere nuovi record:
IdMacchina | MaxDipagata
1 ------------ | 0
2 ------------ | -1
3 ------------ | -1
4 ------------ | 0
5 ------------ | 0
dove "-1" indica che quella macchina ha tutte le fatture regolarmente pagate e "0" il contrario.
Questo è il codice SQL della query.
SELECT TblMacchine.IdMacchina, Max(TblFatture.pagata) AS MaxDipagata
FROM TblMacchine INNER JOIN (TblFatture INNER JOIN TblVerifiche ON TblFatture.IdFattura=TblVerifiche.IdFattura) ON TblMacchine.IdMacchina=TblVerifiche.IdMacchina
GROUP BY TblMacchine.IdMacchina;
Non c'è un modo diverso per risolvere il mio problema?
Grazie a chiunque abbia tempo e/o pazienza di aiutarmi
Gianni