質問
以前、フィールドからテキストを削除して 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