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?

¿Fue útil?

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
scroll top