SELECT-Anweisung liefert keine Datensätze zurück

Status
Nicht offen für weitere Antworten.

Alex_winf01

Top Contributor
Folgende Select-Anweisung liefert keine Datensätze zurück, obwohl es Datensätze gibt, die die Kriterien erfüllen:

Code:
SELECT * from Tabelle 1, Tabelle 2 where Tabelle2.jahr <= 2008 AND Tabelle2.status = abgeschlossen

Es gibt keinerlei Foreigen-Keys zwischen den Tabellen. Ich möchte halt ALLE Werte der Tabelle 1 und alle Datensätze der Tabelle 2, wo das jahr <= 2008 und Status = abgeschlossen.

Was mache ich da falsch?
 
eventuell abgeschlossen unter Hochkomma?



Code:
SELECT * from Tabelle 1, Tabelle 2 where Tabelle2.jahr <= 2008 AND Tabelle2.status = 'abgeschlossen'
 
Funktioniert leider auch nicht.

Wenn ich nur sage
Code:
SELECT * from Tabelle 2 where Tabelle2.jahr <= 2008 AND Tabelle2.status = 'abgeschlossen'
bekomme ich den entsprechenden DS. Ich möchte aber auch gleichzeitig alle Werte aus der 1. Tabelle
 
Sind die Tabellen ident? Wenn ja kannst du auch mit union arbeiten. Ich kenne deine Tabellen leider nicht, daher ist eine Ferndiagnose etwas schwer
 
Also in Tabell 1 steht:

Name
Vorname
Strasse
PLZ
Ort

In Tabelle 2 steht:

Fall-Nummer
Feld 1
Feld 2
Feld 3
Feld 4
Feld 5
Feld 6
Feld 7
Feld8

Es gibt KEINE gemeinsame Spalte, sonst hätte sich ein JOIN angeboten.

EDIT: UNION funzt nicht, weil Tabelle 2 mehr Spalten hat wie Tabelle 1
 
Ich versteh nicht ganz warum du Tabellen die keine Verbindung haben gemeinsam als Ergebnis willst. Wenn die Spaltentypen ident sind kannst du folgendes machen:
Code:
select vorname, nachname
  from tabelle1
union
select feld1, feld2
  from tabelle2

Keine Ahnung ob dir das was hilft
 
Wenn Du dafür

Alex_winf01 hat gesagt.:
Funktioniert leider auch nicht.

Wenn ich nur sage
Code:
SELECT * from Tabelle 2 where Tabelle2.jahr <= 2008 AND Tabelle2.status = 'abgeschlossen'
bekomme ich den entsprechenden DS. Ich möchte aber auch gleichzeitig alle Werte aus der 1. Tabelle

einen DS bekommst, aber hier:
Code:
SELECT * from Tabelle 1, Tabelle 2 where Tabelle2.jahr <= 2008 AND Tabelle2.status = 'abgeschlossen'
nicht, dann könnte es sein, dass Tabelle 1 leer oder der Name für Tabelle 1 nicht korrekt angegeben ist (0 Datensätze für Tabelle 1 * X Datensätze für Tabelle 2 = 0 Datensätze als Ergebnis).

Das hier kannst Du auch probieren:

Code:
SELECT * FROM Tabelle1,(select * from Tabelle1 where usw.)TabelleErgebnis2;

Ist aber im Grunde das Gleiche wie die oberste Select-Anweisung.
 
*Hendrik hat gesagt.:
0 Datensätze für Tabelle 1 * X Datensätze für Tabelle 2 = 0 Datensätze als Ergebnis
Dem stimme ich voll und ganz zu. Dein ursprünglicher select müsste im Prinzip funktionieren.
Aber nehmen wir jetzt mal an, die Tabelle 1 hätte 10 Datensätze und Tabelle 2 hätte 3 Datensätze die den Kriterien entsprechen:
10 Datensätze für Tabelle 1 * 3 Datensätze für Tabelle 2 = 30 Datensätze als Ergebnis
dann hättest du also im Ergebnis jeden Datensatz aus Tabelle 1 drei mal.
Ist das wirklich, was du willst?
 
@ André Uhres

Ja, das ist einfach als Kontrolle so vom Kunden gewollt. Habs jetzt auch gesehen, dass ich in meiner 1. Tabelle keine Daten drinn hatte. 😳

Peinlich.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben