karkenau 11 Geschrieben 17. Februar 2015 Melden Geschrieben 17. Februar 2015 Hallo, folgendes Szenario: Ich führe in einer Tabelle ein Select über mehrere Spalten aus und möchte nun mehrere Spalten mit Spalten aus anderen Tabellen verbinden, die aber keine gleichgenannte Spalten haben, so das , wenn ich die Beschreibung richtig verstanden habe, kein JOIN möglich ist. Was kann ich alternativ tun? Vielen Dank für Eure Hilfe!!
Cybquest 36 Geschrieben 17. Februar 2015 Melden Geschrieben 17. Februar 2015 Warum soll der JOIN nicht möglich sein?!? Ein "ON Tabelle1.Feld1 = Tabelle2.AndererFeldname" geht doch
karkenau 11 Geschrieben 17. Februar 2015 Autor Melden Geschrieben 17. Februar 2015 Ja, klar...wer lesen kann ist klar im Vorteil...Danke Dir :-)
karkenau 11 Geschrieben 1. April 2015 Autor Melden Geschrieben 1. April 2015 (bearbeitet) Ok, diese Abfrage läuft jetzt seit einiger Zeit völlig Problemlos..jetzt gibt es allerdings eine neue Anforderung und damit verbunden eine neue Frage ;-) Ich möchte also in der Abfrage Daten aus einer Tabelle hinzufügen, die etwas anders aufgebaut ist (ich war das nicht, keine Sorge): Und zwar brauche ich Daten, die als Schlüssel "Folie%" (das % ist ein Platzhalter für eine fortlaufende Nummer) haben und dann eine Nummer (die zu einer anderen Tabelle aus der Abfrage passen) und dann einen Beschreibung, die ich gerne in dieser Abfrage mit auswerfen würde. Jemand eine Idee wie ich das anstellen kann? Die einzelne Abfrage dazu lautet: SELECT LFD2 , INHA1 FROM view_fol where KEYIPAR1 like 'FOLIEN%' Aber wie integriere ich das in die o.g. bestehende Abfrage, also per JOIN oder was auch immer es da gibt? Danke nochmal! bearbeitet 1. April 2015 von karkenau
Cybquest 36 Geschrieben 1. April 2015 Melden Geschrieben 1. April 2015 das "FOLIE" davor einfach abschneiden ;) den JOIN also etwa so: ON Tabelle1.ID = SUBSTR(Tabelle2.Key, 6) Ungeprüfte Anregung ;)
zahni 587 Geschrieben 1. April 2015 Melden Geschrieben 1. April 2015 Vielleicht noch in Integer casten. Ist aber gefährlich: Sollten dort mal keine Zahlen stehen, gibt es lustige Fehler.
karkenau 11 Geschrieben 1. April 2015 Autor Melden Geschrieben 1. April 2015 Mag mir jemand den Vorschlag kurz erklären?
Cybquest 36 Geschrieben 1. April 2015 Melden Geschrieben 1. April 2015 Das SUBSTR(Tabelle2.Key,6) soll aus einem "FOLIE1234" "1234" zurück liefern, damit es zu Deinem anderen Feld passt (in meinem Beispiel ID). Zahnis CAST (z.B. CAST(SUBSTR(Tabelle2.Key,6) AS INT)) macht aus dem Substring ne Zahl. Wenn da nun in so einem Feld jedoch z.B. "FOLIE123XY" steht, bekommst nen Fehler. Zu CAST und SUBSTR findest Du bei MSDN.microsoft.com gute Hilfe ;)
karkenau 11 Geschrieben 1. April 2015 Autor Melden Geschrieben 1. April 2015 Hab es gerade probiert und SQL Server 2008 sagt: 'substr' wird nicht als Name einer integrierten Funktion erkannt?
Sunny61 833 Geschrieben 1. April 2015 Melden Geschrieben 1. April 2015 Zeig doch dein komplettes Statement, dann sieht man evtl. mehr.
zahni 587 Geschrieben 1. April 2015 Melden Geschrieben 1. April 2015 MS will es scheinbar genau wissen und nennt die Funktion "SUBSTRING" ;) https://msdn.microsoft.com/de-de/library/ms187748.aspx
karkenau 11 Geschrieben 1. April 2015 Autor Melden Geschrieben 1. April 2015 Ok, das scheint soweit zu funzen....allerdings...das Folie darf nicht abgeschnitten werden, da es noch einen Schlüssel "Folienet??" (also Folienet mit zwei Zahlen) gibt, den ich von dem "Folien" Schlüssel unterscheiden muss. Gibt es also noch eine andere Möglichkeit?
zahni 587 Geschrieben 2. April 2015 Melden Geschrieben 2. April 2015 Da gibt dann die Case() Funktion.
karkenau 11 Geschrieben 2. April 2015 Autor Melden Geschrieben 2. April 2015 Ok, also würde der Befehl dann lauten: SELECT tabelle1, tabelle2 FROM tbl_vbs INNER JOIN view_par ON CASE WHEN KEYIPAR1 like 'folien%' THEN parinha1 WHEN KEYIPAR1 like 'folienet%" THEN PARINHA1 ELSE NULL END = par_view Oder?
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden