SQL:inner join en el alias de columna
-
02-07-2019 - |
Pregunta
Anteriormente he pedido a la franja de texto de un campo y convertirlo a int, este funciona correctamente.Pero ahora, me gustaría hacer un INNER JOIN en este nuevo valor.
Así que tengo este:
SELECT CONVERT(int, SUBSTRING(accountingTab.id, PATINDEX('%[0-9]%', accountingTab.id), 999))
AS 'memId', userDetails.title, userDetails.lname
FROM accountingTab INNER JOIN
(SELECT id, title, first, last FROM memDetTab) AS userDetails ON memID = userDetails.id
Y luego me sale el Nombre de Columna no Válido memID
error.
¿Cómo puedo solucionar este problema?
Solución
Si usted tiene que hacer esto, usted tiene problemas de diseño.Si eres capaz, yo sugeriría que usted necesita para refactorizar su mesa o relaciones.
Otros consejos
Usted puede repetir la expresión inversa o su combinación:
SELECT *
FROM memDetTab
JOIN (SELECT CONVERT(int, SUBSTRING(accountingTab.id, PATINDEX('%[0-9]%', accountingTab.id), 999)) AS 'memId', userDetails.title, userDetails.lname
FROM accountingTab) subquery
ON subquery.memID = memDetTab.ID
En lugar de memId, repetir toda la expresión.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow