SQL-Code:
..
ItemAct IA
join (SELECT FIRST 1 Cp, ItemId FROM Cp_Fecha WHERE ItemId=IA.ItemId AND Fecha <= :Fecha ORDER BY Fecha DESCENDING) CP1 on cp1.ItemID = IA.ItemID
...
==>
SELECT FIRST 1 Cp, ItemId
FROM Cp_Fecha
WHERE ItemId=IA.ItemId AND ....
Auch in einer Unterabfrage sollten in FROM alle Tabellen definiert werden, die in WHERE angesprochen werden.
Gruß
K-H
P.S. ggf ist es einfacher für jedes Produkt den Datensatz auszugeben, der die Datumsbedingung erfüllt. So lange es gerade mal eine gute Hand voll Produkte ist...