문제
이전에는 필드에서 텍스트를 제거하고 이를 int로 변환하도록 요청했는데 이는 성공적으로 작동합니다.하지만 이제 이 새로운 값에 대해 INNER JOIN을 수행하고 싶습니다.
그래서 나는 이것을 가지고 있습니다 :
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
그런 다음 잘못된 열 이름을 얻습니다. memID
오류.
이 문제를 어떻게 해결할 수 있나요?
해결책
이렇게 해야 한다면 설계에 문제가 있는 것입니다.가능하다면 테이블이나 관계를 리팩토링해야 한다고 제안합니다.
다른 팁
전체 표현식을 반복하거나 조인을 되돌릴 수 있습니다.
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
memId 대신 전체 표현식을 반복하십시오.
제휴하지 않습니다 StackOverflow