Уважаемый
CasperSKY, может это звучит банально, но вы в таблице
inventdim строки с RecId равным вашему условию есть физически?
И если да, то может стоит поставить в where inventdim.RecID!= 0 (на всякий случай

)
Как вариант еще вывести все значение RecID, возвращаемых через while select, в какой-то буфер и проверить есть ли они там.