문제

이전에는 필드에서 텍스트를 제거하고 이를 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 대신 전체 표현식을 반복하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top