karkenau 11 Geschrieben 17. Februar 2015 Melden Teilen 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!! Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 17. Februar 2015 Melden Teilen Geschrieben 17. Februar 2015 Warum soll der JOIN nicht möglich sein?!? Ein "ON Tabelle1.Feld1 = Tabelle2.AndererFeldname" geht doch Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 17. Februar 2015 Autor Melden Teilen Geschrieben 17. Februar 2015 Ja, klar...wer lesen kann ist klar im Vorteil...Danke Dir :-) Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 1. April 2015 Autor Melden Teilen 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 Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 1. April 2015 Melden Teilen Geschrieben 1. April 2015 das "FOLIE" davor einfach abschneiden ;) den JOIN also etwa so: ON Tabelle1.ID = SUBSTR(Tabelle2.Key, 6) Ungeprüfte Anregung ;) Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 1. April 2015 Melden Teilen Geschrieben 1. April 2015 Vielleicht noch in Integer casten. Ist aber gefährlich: Sollten dort mal keine Zahlen stehen, gibt es lustige Fehler. Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 1. April 2015 Autor Melden Teilen Geschrieben 1. April 2015 Mag mir jemand den Vorschlag kurz erklären? Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 1. April 2015 Melden Teilen 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 ;) Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 1. April 2015 Autor Melden Teilen Geschrieben 1. April 2015 Hab es gerade probiert und SQL Server 2008 sagt: 'substr' wird nicht als Name einer integrierten Funktion erkannt? Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 1. April 2015 Melden Teilen Geschrieben 1. April 2015 Zeig doch dein komplettes Statement, dann sieht man evtl. mehr. Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 1. April 2015 Melden Teilen Geschrieben 1. April 2015 MS will es scheinbar genau wissen und nennt die Funktion "SUBSTRING" ;) https://msdn.microsoft.com/de-de/library/ms187748.aspx Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 1. April 2015 Autor Melden Teilen 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? Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 2. April 2015 Autor Melden Teilen Geschrieben 2. April 2015 Jemand eine Idee? Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 2. April 2015 Melden Teilen Geschrieben 2. April 2015 Da gibt dann die Case() Funktion. Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 2. April 2015 Autor Melden Teilen 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? Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.