- Yo no utilizaria sql dinamico para sentencia que tienes, es mejor el select que ya armaste.
- El sp_executesql esta mal empleado, no es necesario que envies ningun parametro ya que todos los armaste en el string.
- ¿Que error te marca el select? o simplemente no te trae valores?, danos mas detalles acerca de la info existente en la bd y la llamada al procedimiento en el momento en el que no funciona, para que te puedan ayudar mejor.
saludos!