26/10/2025 - pierovb ha scritto:
Sihandrea
Serve per Calcolare quante confezioni di un determinato articolo sono state ordinate/consumate in un anno e in un determinato mese.
Avrei potuto mettere un campo in più nelle due tabelle principali e con una flag marcare quelli con confezioni pari a zero, ma non l'ho fatto e ora mi devo arrangiare.
In realtà la cosa più giusta da fare, e potresti essere ancora in tempo per realizzarla, è utilizzare un'unica tabella dove ti basta registrare l'ID dell'articolo, la quantità, la data dell'evento, il tipo di evento (Carico/Scarico) e altri dati necessari, per esempio l'ID del fornitore, l'ID del cliente etc.
In questo modo con una semplice query di selezione (o un banale SUM sul campo della quantità) puoi discriminare in base al tipo di evento (Carico/Scarico) la quantità totale Carico+Scarico in un determinato periodo e per ogni ID articolo o per ogni ID Cliente
In questo modo, secondo me, ti stai complicando inutilmente la vita.
Riguardo la Query di unione puo realizzarla così come faresti di solito, ma al posto di prendere i dati da un'unica Tabella li prendi dall'UNION di entrambe:
SELECT MagCompleto.Articolo, Sum(MagCompleto.QuantitaC) AS TotQuantitaC
FROM (SELECT * FROM newMovimenti UNION SELECT * FROM newMovimentiZERO) AS MagCompleto
WHERE Month(MagCompleto.Data)=1 AND Year(MagCompleto.Data)=2025 GROUP BY MagCompleto.Articolo
Questa: (SELECT * FROM newMovimenti UNION SELECT * FROM newMovimentiZERO) AS MagCompleto
in pratica è la tua tabella e, nella query, si chiamerà MagCompleto.
In realtà se stai utilizzando Access, potresti creare già direttamente una query di unione, usando quella a mo' di Tabella per fare la tua query, in modo assolutamente identico a come faresti con una "Vista" in un altro DB