AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Bedingter INNER JOIN in SELECT möglch?
Thema durchsuchen
Ansicht
Themen-Optionen

Bedingter INNER JOIN in SELECT möglch?

Ein Thema von Christian Seehase · begonnen am 12. Feb 2008 · letzter Beitrag vom 13. Feb 2008
Antwort Antwort
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#1

Bedingter INNER JOIN in SELECT möglch?

  Alt 12. Feb 2008, 16:40
Datenbank: MS SQL • Version: 2000 • Zugriff über: Query Analyzer
Hallo Zusammen,

in einer Tabelle habe ich eine Spalte, die eine Mitarbeiter-ID enthält. Diese korrespondiert aber nur teilweise mit der zugehörigen Stammdatentabelle, da hier auch die allgemeine Kennung für einen externen Mitarbeiter enthalten sein kann. Diese Dummy-ID gibt es aber in der Stammdatentabelle nicht, so dass ich für solche Zeilen bei einem INNER JOIN aus der Stammdatentabelle keine Daten zurückerhalte (logisch ). Der Datensatz mit der Dummy-ID enthält dann aber den Klartextnamen, so dass ich in dem Falle nicht auf die Daten aus der Stammdatentabelle angwiesen bin.
Gibt es eine Möglichkeit den INNER JOIN auf die Stammdatentabelle nur unter der Bedingung auszuführen, dass ich eine gültige ID übergebe?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
NormanNG

Registriert seit: 1. Feb 2006
294 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Bedingter INNER JOIN in SELECT möglch?

  Alt 12. Feb 2008, 16:48
Hi,

ich glaube, was du suchtst ist der LEFT JOIN (Alles aus der linken Tabelle und das was passt aus der rechten...).

SQL-Code:
select Name1, isnull(stamm1.name, name1) from tabelle1
left join stamm1 on stamm1.id=tabelle1.id
...oder so
Gruß
Norman
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Bedingter INNER JOIN in SELECT möglch?

  Alt 12. Feb 2008, 17:55
Zitat von NormanNG:
SQL-Code:
select Name1, isnull(stamm1.name, name1) from tabelle1
left join stamm1 on stamm1.id=tabelle1.id
...oder so
Nämlich so (is' halt T-SQL von MS)
SQL-Code:
select Name1,
       coalesce(stamm1.name, name1)
  from tabelle1
       left join stamm1
         on stamm1.id=tabelle1.id
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Bedingter INNER JOIN in SELECT möglch?

  Alt 12. Feb 2008, 17:57
Ist COALESCE nicht ausnahmsweise mal ein Teil des Standards?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Bedingter INNER JOIN in SELECT möglch?

  Alt 12. Feb 2008, 18:14
Hallo Zusammen,

prima, danke.
Da hab' ich jetzt schon mal einen Anhaltspunkt wie ich weiter vorgehen kann.
(jetzt muss ich's nur noch hinbekommen )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Bedingter INNER JOIN in SELECT möglch?

  Alt 12. Feb 2008, 18:26
Zitat von Dax:
Ist COALESCE nicht ausnahmsweise mal ein Teil des Standards?
Selbst wenn, würde MS es sich zu Eigen gemacht haben...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Bedingter INNER JOIN in SELECT möglch?

  Alt 13. Feb 2008, 21:25
Moin Zusammen,

noch mal meinen herzlichsten Dank.
Nachdem ich mich noch mal mit den angsprochenen Anhaltspunkten beschäftigt hatte, habe ich meine Abfrage hinbekommen wie geplant.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz