como menciona @Daniel_Torrez, tienes que empezar de atrás hacia adelante. Tienes que ligar la tabla de lotes a la de facturas. Te djo un query que usé en el pasado; no esta muy bonito pero alamejor te puede servir:
SELECT T4.Docentry as DocEntry_Factura, T4.DocNum_Factura, T4.[CardName], T4.[ItemCode], T4.[Dscription], T4.[Quantity] as Qty,
T4.WhsCode, T0.BsDocLine,
T0.[BatchNum], T5.U_FX_LOT as Lote, T5.SuppSerial AS Pedimento, T5.InDate as FechaEntrada,
CONVERT(NVARCHAR,T5.Notes) as Aduana, T0.BaseLinNum
FROM IBT1 T0 left join (SELECT T1.DocEntry, T1.DocNum, T1.DocType, T1.ObjType, T1.DocDate,T1.[CardName],
T2.[ItemCode], T2.[Dscription], T2.[Quantity], T2.NumPerMsr ,T2.LineNum, T1.DocStatus, T2.WhsCode
FROM OINV T1 inner JOIN INV1 T2 ON T1.DocEntry = T2.DocEntry) T4 ON T0.BaseType = T4.ObjType and T0.BaseLinNum = T4.LineNum
INNER JOIN OIBT T5 on T0.BatchNum = T5.BatchNum
and T4.ItemCode = T5.ItemCode
and T4.WhsCode = T5.WhsCode
WHERE T0.[Direction] = CASE WHEN T4.DocDate < '20131231' THEN 2 ELSE 1 END /* EN EL 2014 DEJAMOS DE USAR FACTURAS DE RESERVA */
and T0.[BaseNum] = T4.[DocNum]
--and T4.DocEntry = @DocEntry
GROUP BY T4.Docentry, T4.[DocNum], T4.[CardName], T4.[ItemCode],
T4.[Dscription], T4.[Quantity], T0.[Direction], T0.[Quantity],
T0.[BatchNum],T4.NumPerMsr,T5.U_FX_LOT, T5.SuppSerial, T4.WhsCode, T0.BsDocLine,
T5.InDate, CONVERT(NVARCHAR,T5.Notes),T0.BaseLinNum