Entwickler-Ecke
Datenbanken - SQL Abfrage
MR. Up - Di 14.10.08 22:47
Titel: SQL Abfrage
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
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
Narses: Delphi-Tags hinzugefügt
Martok - Mi 15.10.08 00:07
Titel: Re: SQL Abfrage
MR. Up hat folgendes geschrieben : |
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. |
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.
MR. Up hat folgendes geschrieben : |
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
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:
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:
Delete - 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...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!