MS SQL - Join zweier unterschiedlicher Datentypen
Hallo zusammen,
ich stehe leider vor einem Problem, das ich zurzeit nicht so wirklich lösen kann.
Es geht um folgendes:
Für eine Auswertung muss ich zwei Tabellen miteinander verknüpfen - über die Spalte Belegnummer.
Diese ist in der einen Tabelle ein nvarchar, in der anderen vom Datentyp bigint - warum fragt mich bitte nicht, ich habe das sicher nicht so erstellt.
Bei der Abfrage
SELECT *
FROM Tabelle_1 Tab1
JOIN Tabelle_2 Tab2 on Tab1.Belegnummer = Tab2.Belegnummer
erhalte ich demzufolge die Meldung: Msg 8114, Level 16, State 5, Line 1
Fehler beim Konvertieren des nvarchar-Datentyps in bigint.
Da ich mit solchen Abfragen noch keine Erfahrung habe, wäre ich über Hilfe sehr dankbar, wie und ob ich das lösen kann.
Viele Grüße
ich stehe leider vor einem Problem, das ich zurzeit nicht so wirklich lösen kann.
Es geht um folgendes:
Für eine Auswertung muss ich zwei Tabellen miteinander verknüpfen - über die Spalte Belegnummer.
Diese ist in der einen Tabelle ein nvarchar, in der anderen vom Datentyp bigint - warum fragt mich bitte nicht, ich habe das sicher nicht so erstellt.
Bei der Abfrage
SELECT *
FROM Tabelle_1 Tab1
JOIN Tabelle_2 Tab2 on Tab1.Belegnummer = Tab2.Belegnummer
erhalte ich demzufolge die Meldung: Msg 8114, Level 16, State 5, Line 1
Fehler beim Konvertieren des nvarchar-Datentyps in bigint.
Da ich mit solchen Abfragen noch keine Erfahrung habe, wäre ich über Hilfe sehr dankbar, wie und ob ich das lösen kann.
Viele Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 284219
Url: https://administrator.de/forum/ms-sql-join-zweier-unterschiedlicher-datentypen-284219.html
Ausgedruckt am: 26.12.2024 um 02:12 Uhr
1 Kommentar
SQL versucht hier bereits ohne das du es explizit "befohlen" hast, die NVARCHAR Spalte nach BIGINT zu konvertieren. Da vermutlich irgendwo ein Datensatz mit Zeichen in der Spalte ist, schlägt das fehl. Wenn du andersrum BIGINT in NVARCHAR konvertierst, müsste es gehen. Kaputt ist das Tabellendesign aber dennoch...
ON <spalte_vom_typ_nvarchar> = cast(<spalte_vom_typ_bigint> AS NVARCHAR(<länge>))
ON <spalte_vom_typ_nvarchar> = cast(<spalte_vom_typ_bigint> AS NVARCHAR(<länge>))