Mi serve una query non semplice, ma non riesco a realizzarla xfettamente.
Praticamente ho 3 tabelle, la prima ke contiene una serie di articoli e le loro informazioni principali, la seconda con i prezzi di questi articoli e i fornitori (praticamente un articolo può avere diversi prezzi xkè comprato da + fornitori) e la terza con dei movimenti che vengono eseguiti sugli articoli (quantità di materiale caricato e scaricato)

Ora dovrei realizzare una query che mi restituisca tutti gli articoli sottoscorta (cioè ke hanno il campo scortaminima della tabella articoli maggiore della quantità ke si ricava sottraendo la quantità di articoli scaricati da quelli caricati), con i campi scortaminima (preso pari pari dal database), scorta attuale (ricavato dai movimenti), ordine (ricavato da scortaminima-attuale+1) e fornitore e prezzo ke vengono scelti prendendo il fornitore ke fornisce il prezzo migliore.

C sn quasi riuscito a farla ma ho un problema cn questi ultimi 2 campi. Praticamente non riesco a fargli prendere il fornitore e prezzo con prezzo minore relativo al singolo articolo.

Ho provato a farlo in questo modo ma se per esempio un articolo ha + fornitori mi restituisce 2 record cn lo stesso articolo e i 2 fornitori e prezzi distinti

codice:
SELECT 
 T_MAGAZZINO_ARTICOLI.CodiceArticolo, 
 T_MAGAZZINO_ARTICOLI.descrizione, 
 T_MAGAZZINO_ARTICOLI.scorta_min AS [Scorta minima], 
 SUM(T_MAGAZZINO_MOVIMENTI.qta * T_MAGAZZINO_MOVIMENTI.tipomov) AS Attuale,
 T_MAGAZZINO_ARTICOLI.scorta_min + 1 - 
   SUM(T_MAGAZZINO_MOVIMENTI.qta * T_MAGAZZINO_MOVIMENTI.tipomov) AS Ordine, 
 T_MAGAZZINO_PREZZI.CodFornitore AS Fornitore,
 T_MAGAZZINO_PREZZI.Prezzo
FROM 
 T_MAGAZZINO_ARTICOLI LEFT OUTER JOIN
 T_MAGAZZINO_MOVIMENTI INNER JOIN
 T_MAGAZZINO_PREZZI ON 
 T_MAGAZZINO_MOVIMENTI.codart = T_MAGAZZINO_PREZZI.CodArticolo ON 
 T_MAGAZZINO_ARTICOLI.CodiceArticolo = T_MAGAZZINO_PREZZI.CodArticolo 
 AND 
 T_MAGAZZINO_ARTICOLI.CodiceArticolo = T_MAGAZZINO_MOVIMENTI.codart
GROUP BY 
 T_MAGAZZINO_ARTICOLI.CodiceArticolo, T_MAGAZZINO_ARTICOLI.descrizione, 
 T_MAGAZZINO_ARTICOLI.scorta_min, T_MAGAZZINO_PREZZI.CodFornitore,
 T_MAGAZZINO_PREZZI.Prezzo
HAVING
 (SUM(T_MAGAZZINO_MOVIMENTI.qta * T_MAGAZZINO_MOVIMENTI.tipomov) 
    < T_MAGAZZINO_ARTICOLI.scorta_min) AND 
 (T_MAGAZZINO_PREZZI.Prezzo = MIN(T_MAGAZZINO_PREZZI.Prezzo))
Ho provato a cambiare l' ultima condizione del having in questo modo
codice:
 ... 
And (T_MAGAZZINO_PREZZI.Prezzo = 
(Select MIN(T_MAGAZZINO_PREZZI.Prezzo) FROM T_MAGAZZINO_PREZZI))
Ma in questo caso mi restuisce al max 1 record in totale che è l articolo con il prezzo minore di tutti

Ho provato nella select principale a mettere Select...., Min(Prezzo) ma m risulta uguale alla prima ke ho scritto

Qualcuno può aiutarmi pls?