Autor Beitrag
MR. Up
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 14.10.08 22:47 
Hey weiß eienr wie das geht?
man hat zwei tabellen (name, telefon) und möchte ein gemeinsames Telefonverzeichnis erstellen. Es solllen aber nur die Kundenausgegeben werden, die auch tatsächlich einen Telefoneintrag haben.

und andere frage:
man sucht alle rechnungen, die für "Müller" ausgestellt wurde, man sucht in der Tabelle "kunden" und in der Tabelle "rechnungen".
Das ist ja nicht das problem:
Begin
ausblenden Delphi-Quelltext
1:
2:
Query1.SQL.Clear;
Query1.SQL.Text := 'SELECT * FROM Rechnung, Kunden where Rechnung.kundennummer = kunden.kundennummer and rechnungen.kundenname = "Müller"';

jetzt will man auch die kunden ausgedruckt haben, die aufgelistet wurden, aber keine rechnung bekommen haben.

und da weiß ich ncith weiter!

danek schon mal

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Di 14.10.08 23:46 

_________________
PROGRAMMER: A device for converting coffee into software.
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mi 15.10.08 00:07 
user profile iconMR. Up hat folgendes geschrieben Zum zitierten Posting springen:
Hey weiß eienr wie das geht?
man hat zwei tabellen (name, telefon) und möchte ein gemeinsames Telefonverzeichnis erstellen. Es solllen aber nur die Kundenausgegeben werden, die auch tatsächlich einen Telefoneintrag haben.

ausblenden SQL-Anweisung
1:
... and TELEFON IS NOT NULL					

Sollte das nicht gehen, ist dein DB-Design für den Fall falsch und du musst über NOT IN (select) rumbasteln.

user profile iconMR. Up hat folgendes geschrieben Zum zitierten Posting springen:
und andere frage:
man sucht alle rechnungen, die für "Müller" ausgestellt wurde, man sucht in der Tabelle "kunden" und in der Tabelle "rechnungen".
Das ist ja nicht das problem:
Begin
ausblenden Delphi-Quelltext
1:
2:
Query1.SQL.Clear;
Query1.SQL.Text := 'SELECT * FROM Rechnung, Kunden where Rechnung.kundennummer = kunden.kundennummer and rechnungen.kundenname = "Müller"';

jetzt will man auch die kunden ausgedruckt haben, die aufgelistet wurden, aber keine rechnung bekommen haben.

Das heißt für mich einfach alle Kunden.... oder aber das was ich oben im 2. Teilsatz meinte:
ausblenden SQL-Anweisung
1:
select k.* from KUNDEN k, RECHNUNG r where k.KUNDENNUMMER not in (select KUNDENNUMMER from RECHNUNG)					

= Alle Kunden, die keinen korrespondierenden Eintrag in der Rechnungstabelle haben haben.

Für solche Fragen ist es immer schön zu wissen von welchem DBMS wir reden und wie dein DB-Layout ist.

Übrigens schön dass du im DT sagst dass es Hausaufgaben sind. Und deine Antwort dort lässt darauf schließen dass du wenig bis keine Ahnung von SQL hast... von daher nutzt dir das hier wahrscheinlich wenig. Ich lass es aber mal stehen, bin ja nicht so... :roll:

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 15.10.08 10:16 
Das ginge auch mit einem OUTER JOIN und einer Abfrage auf NULL in der gejointen Tabelle. Aber da das DBMS unbekannt ist...
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Mi 15.10.08 10:56 
Wenns für Hausaufgaben ist, ist relationale Algebra immer schön. Da kann tatsächlich was bei lernen.

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.