Porque una cadena de texto debe quedar entre comillas, y la sentencia que habías puesto dejaba el contenido de
@RFC como si fuese el nombre de una columna.
Eso era evidente en el mensaje de error:
Cita: Mens. 207, Nivel 16, Estado 1, Línea 1
El nombre de columna 'SARB8511174P7' no es válido.
"no es válido" es indicativo de que
no existe o es incorrecto, y dado que eso era lo que contenía @RFC...
Se puede ver perfectamente si reemplazas las variables de tu script con los valores que reciben las mismas. Al hacerlo el SQL quedaría así:
Código SQL:
Ver originalSELECT DISTINCT(NOMBRE)
FROM gbl2013 GB INNER JOIN prd1318 PRD ON GB.RFCH = PRD.RFCH
WHERE GB.QNAPROC = 18 AND PRD.RFCH = SARB8511174P7
¿Ves el error?