Ciao, devo realizzare una vista parecchio incasinata... io ho provato a
seguire la mia mia logica ma mi vengono duplicati alcuni records ... forse
per qualche join sbagliata

tabOperazioni
IDOrdine - IDOperazione - Macchina
1 - 11 - M1
1 - 22 - M2
1 - 33 - M3
2 - 55 - M2
3 - 66 - M1

tabOrdini
IDOrdine - NrOrdine
1 - XXXXXX
2 - YYYYYY
3 - ZZZZZZ

TabComponenti
IDOrd - CodLotto - Articolo - Qt1 - Qt2
1 - AAA - Art01 - 10 - 5
1 - CCC - Art03 - 3 - 1
2 - null - Art02 - 15 - 3
3 - FFF - Art01 - 9 - 4
3 - HHH - Art04 - 12 - 3

tabElencoLotti
CodLotto (chiave) - Magazzino - Qt3
AAA - MM1 - 1
BBB - MM2 - 1
CCC - MM1 - 1
FFF - MM3 - 1
HHH - MM1 - 1

Quello che voglio ottenere è:

divido in due parti per capire meglio come arrivare alla vista finale:

prima parte....

incrocio con Macchina di tabOperazioni e TabComponenti tramite IdOrd
Mac - NrOrd - Art - CodLot - Qt1 - Qt2
M1 - XXXXXX - Art01 - AAA - 10 - 5
M1 - XXXXXX - Art03 - CCC - 3 - 1
M2 - XXXXXX - Art01 - AAA - 10 - 5
M2 - XXXXXX - Art03 - CCC - 3 - 1
M3 - XXXXXX - Art01 - AAA - 10 - 5
M3 - XXXXXX - Art03 - CCC - 3 - 1
M2 - YYYYYY - Art02 - null - 15 - 3
M1 - ZZZZZZ - Art01 - FFF - 9 - 4
M1 - ZZZZZZ - Art04 - HHH - 12 - 3


seconda parte... trovo tutti gli elementi che hanno lotto corrispondente
nella tabella tabElencoLotti

collego gli elementi di tabElencoLotti che hanno lo stesso CodLotto dei
componenti
Mac - NrOrd - Art - CodLot - Qt1 - Qt2 - Magazzino - Qt3
M1 - XXXXXX - Art01 - AAA - 10 - 5 - MM1 - 1
M1 - XXXXXX - Art03 - CCC - 3 - 1 - MM1 - 1
M2 - XXXXXX - Art01 - AAA - 10 - 5 - MM1 - 1
M2 - XXXXXX - Art03 - CCC - 3 - 1 - MM1 - 1
M3 - XXXXXX - Art01 - AAA - 10 - 5 - MM1 - 1
M3 - XXXXXX - Art03 - CCC - 3 - 1 - MM1 - 1
M2 - YYYYYY - Art02 - null - 15 - 3 - -
zzz viene duplicato perchè ci sono due CodLotto corrispondenti
M1 - ZZZZZZ - Art01 - FFF - 9 - 4 - MM3 - 1
M1 - ZZZZZZ - Art04 - HHH - 12 - 3 - MM1 - 1
M1 - ZZZZZZ - Art01 - FFF - 9 - 4 - MM3 - 1
M1 - ZZZZZZ - Art04 - HHH - 12 - 3 - MM1 - 1


io avevo provato a fare qualche cosa del tipo...

non guardate i nomi dei campi perchè purtroppo mi è impossibile riprodurre
esattamente la struttura del DB


select
IDOperazione ,
Macchina,
NrOrdine,
....
from tabOperazioni OPE
inner join tabOrdini OT ON OPE.IDOrdine = OT.IDOrdine
inner join TabComponenti OC ON OPE.IDOrdine = OC.IDOrdine
inner join
(
select
CodLotto,
Magazzino,
sum(Quantita)

from tabElencoLotti
group by CodLotto,
Magazzino
) TMP ON OC.CodLot = TMP.CodLotto