f4lcoN 0 Geschrieben 26. Februar 2015 Melden Teilen Geschrieben 26. Februar 2015 Ich stehe ein bisschen auf der Leitung...ich hoffe es kann mir wer helfen. Tabellen: resultsTKG(id, bc, tkg, datetime) resultsHL(id, bc, hl, datetime) BC ist ein Barcode und besteht aus versuch (ein string mit fixer länge in dem informationen gespeichert sind: zB: das 4. und 5. Zeichen sind das Jahr (15) Jetzt gibt es natürlich Proben die Ergbenisse für TKG+HL, TKG, HL oder wedernoch haben. Ich will eine SICHT in der alle Ergebnisse (resultstkg.tkg, resultsHL.hl) angezeigt werden UND dazu auch die INformationen aus dem BC (mit: SUBSTRING(BC, 17, 20) zum Beispiel) aber ohne Löcher bzw. doppelte Werte: Also : TKG, HL, Versuch, Nummer, 12, 34, 1, 1 12, , 1, 2 , 34, 1, 3 Vorschläge? Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 26. Februar 2015 Melden Teilen Geschrieben 26. Februar 2015 Hallo und willkommen im Forum. Ich bin mir nicht ganz sicher was Du willst: Wenn ID in beiden Tabellen gleich ist, dann "Joine" darauf. Im Select "SUBSTRING(BC, 17, 20) as irgendwas" zu schreiben, dürft keine Hürde sein. Zitieren Link zu diesem Kommentar
f4lcoN 0 Geschrieben 27. Februar 2015 Autor Melden Teilen Geschrieben 27. Februar 2015 (bearbeitet) Hallo! Danke für deine Antwort. Ich hab mir schon gedacht, dass das Problem nicht gut erklärt ist. Die ID ist in beiden Tabellen entweder gleich, oder nur in einer Tabelle vorhanden: SELECT RT.TKG, RH.HL, RH.BC, RT.BC FROM dbo.ResultsTKG AS RT full OUTER JOIN dbo.ResultsHL AS RH ON RT.BC = RH.BC ; ergibt also: TKG HL BC BC 14.15 4.15 SW0001EDEHO150063 SW0001EDEHO150063 10.11 3.35 SW0001EDEHO150062 SW0001EDEHO150062 18.11 3.34 SW0001EDEHO150061 SW0001EDEHO150061 12.11 NULL NULL SW0001EDEHO150064 NULL 2.91 SW0001EDEHO150065 NULL NULL 2.91 SG0001EDEHO150065 NULL ich hätte aber gerne: TKG HL BC 14.15 4.15 SW0001EDEHO150063 10.11 3.35 SW0001EDEHO150062 18.11 3.34 SW0001EDEHO150061 12.11 NULL SW0001EDEHO150064 NULL 2.91 SW0001EDEHO150065 NULL 2.91 SG0001EDEHO150065 Ich hoffe es ist jetzt besser verständlich. bearbeitet 27. Februar 2015 von f4lcoN Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 27. Februar 2015 Melden Teilen Geschrieben 27. Februar 2015 In diesem Artikel ist es gut erklärt: http://www.donkarl.com?FAQ3.16 Damit solltest Du es auch hinbekommen. Zitieren Link zu diesem Kommentar
f4lcoN 0 Geschrieben 27. Februar 2015 Autor Melden Teilen Geschrieben 27. Februar 2015 NIcht wirklich Du hast 2 Tabellen "A" und "B" und möchtest herausfinden, welche Datensätze sich in A befinden, aber nicht in B. ich möchte aber alles aus A und alle aus B anzeigen (FULL OUTER JOIN) Problem ist: ich möchte nur ein Feld (BC) haben, dessen Inhalt er sich aus entweder RT.BC oder RH.BC holt, je nachdem wo es vorhanden ist. sozusagen die 2 spalten kombinieren. (von dieser SICHT sollen dann gesammelte Ergebnisse per BC abfragbar sein.) wie zb. mit UNION: (select rt.bc from dbo.ResultsTKG AS RT union select rh.bc from dbo.ResultsHL AS RH) ich schaffs nur nicht diese Abfragen zu kombinieren. Vielleicht gibts auch eine viel einfachere Lösung..bin nur gedanklich etwas festgefahren. Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 27. Februar 2015 Melden Teilen Geschrieben 27. Februar 2015 Und was spricht gegen die UNION Lösung? SELECT * FROM (select rt.bc from dbo.ResultsTKG) AS RT UNION SELECT * FROM (select rh.bc from dbo.ResultsHL) AS RT Zitieren Link zu diesem Kommentar
Beste Lösung f4lcoN 0 Geschrieben 27. Februar 2015 Autor Beste Lösung Melden Teilen Geschrieben 27. Februar 2015 (bearbeitet) Nichts. HABS GERADE GELÖST. Problem war die Syntax. ich hab den Ausruck (Select .... UNION Select ....) nicht als JOIN drangehängt habe, sondern als <select list> im SELECT Befehl............ Also, FALSCH: SELECT RT.TKG, RH.HL, (select rt.bc from dbo.ResultsTKG AS RT union select rh.bc from dbo.ResultsHL AS RH) FROM dbo.ResultsTKG AS RT full OUTER JOIN dbo.ResultsHL AS RH ON RT.BC = RH.BC ; RICHTIG: SELECT RT.TKG, RH.HL, IBC.BC FROM dbo.ResultsTKG AS RT full OUTER JOIN dbo.ResultsHL AS RH ON RT.BC = RH.BC FULL OUTER JOIN (select rt.bc from dbo.ResultsTKG AS RT union select rh.bc from dbo.ResultsHL AS RH) AS IBC ON IBC.bc = RT.BC OR ibc.bc =rh.bc ; Eh logisch. Aber wenn man den Wald vor lauter Bäumen nicht mehr sieht kommt man halt nich drauf...... bearbeitet 27. Februar 2015 von f4lcoN Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 27. Februar 2015 Melden Teilen Geschrieben 27. Februar 2015 Freut mich für Dich und Danke für die Rückmeldung. ;) 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.