Frage

Bisher habe ich gefragt, Text aus einem Feld abzustreifen und es in einen int umwandeln, das funktioniert erfolgreich. Aber jetzt, ich möchte ein INNER JOIN auf diesen neuen Wert tun.

So habe ich dies:

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

Und dann bekomme ich die ungültigen Spaltennamen memID Fehler.

Wie kann ich dieses Problem beheben?

War es hilfreich?

Lösung

Wenn Sie dies tun, haben Sie Design-Probleme. Wenn Sie in der Lage sind, würde ich vorschlagen, dass Sie Ihren Tisch oder Beziehungen Refactoring benötigen.

Andere Tipps

Sie können entweder wiederholen Sie den gesamten Ausdruck oder umgekehrt Ihre beitreten:


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

Statt memid, wiederholen Sie den gesamten Ausdruck.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top