Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/01/2018, 08:23
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Columna ... en where clause es desconocida

Los alias de los campos en el SELECT no se pueden usar en los WHERE de la misma sentencia. Es una regla de TODOS los DBMS. En el WHERE sólo se pueden usar nombres de columnas físicas.
Para hacer eso ese SELECT debe generar una tabla derivada, es decir estár dentro de una subconsulta.

Código SQL:
Ver original
  1. SELECT sc1
  2. FROM (SELECT SUBSTR(sc,1,4) sc1
  3. FROM sc) tablaresultado
  4. WHERE sc1 = '7160'

Un par de cosas:
1) Los "AS" son obsoletos, no se requieren ni representan ventaja alguna desde hace mas de una década. ALgunos DBMS incluso te pueden marcar errores de sintaxis cuando los pones.
2) En MySQL las comillas (") se suelen usar en los nombres de objetos de base de datos, y NO en cadenas de texto. Ten cuidado porque pueden disparar errores inesperadamente si el servidor de MySQL no está específicamente configurado para reconocerlos como cadenas de texto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)