Mira si funciona este código:
Text To m.lcSelIdVta Textmerge Noshow Pretext 15
Select det.ProductId
, Max(doc.Fecha_Emi) As FecUltMov
From heDocum02 As det
Where det.AlgunDato corresponde a Venta o Compra
Group By ProductId
Endtext
*--&lcSelIdVta
Text To m.lcSelUltPrecio Textmerge Noshow Pretext 15
Select uiv.ProductId
, art.ProductName
, uiv.FecUltMov
, det.Precio_Und
From (<<m.lcSelIdVta>>) As ud
Inner Join heMArti01 As art
On uiv.ProductId = art.ProductId
Inner Join heDocum02 As det
On ud.ProductId = det.ProductId
And ud.FecUltMov = det.Fecha_Emi
Order By art.ProductId
Endtext
*--&lcSelUltPrecio
*!* Si es con dbf ejeduta con EXECSCRIPT(m.lcSelUltPrecio)
*!* Si es otro motor SQL con SQLEXEC(nConexion, m.lcSelUltPrecio, "curUltPrecios")