Meinews.de  


Zurück   Meinews.de > Forum > Newsgroups microsoft.public.de.* 1 Forum > Newsgroup microsoft.public.de.access
Registrieren FAQ Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

Newsgroup microsoft.public.de.access Forum microsoft.public.de.access

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11-05-2009, 03:24 PM
Ralf Dorn
 
Beiträge: n/a
Standard Alle Datensätze einer Tabelle die in der anderen nicht vorhanden s

Hallo alle zusammen,

ich glaube ich sitze auf der Leitung. Ich kapiere es einfach nicht.

Ich habe zwei Tabellen

1. Rechner
2. Ausgeleihen

In Rechner gibt es die Felder

ID
Geraetebezeichnung
SNR
Hersteller
Typ
Modell

In Ausgeliehen:

ID
R-ID
Anwender
Ort
Ausleihdatum
Rückgabedatum

Rechner ist 1:n mit Ausgeliehen verbunden.

Nun will ich alle Rechner sehen die zurzeit nicht ausgeliehen sind. Also
alle Rechner die nicht in der Ausgeliehen Tabelle stehen oder das
Rückgabedatum Feld nicht leer ist. Dann sind sie eben auch frei.

Wie bekomme ich den diese Abfrage hin?

Ich habe jetzt einfach eine Abfrage im Entwurfsmodus geöffnet und beide
Tabellen einbezogen. Wähle ich nun alle Felder(Beide Tabellen) aus so werden
mir so viele Datensätze angezeigt wie in der Tabelle Ausgeliehen vorhanden
sind. Ohne das ich das Kriterium Rückgabedatum mal einbeziehe.

Mal angenommen es stehen in der Tabelle Rechner 100 Datensätze und in der
Tabelle Ausgeliehen 10.

Dann hätte ich jetzt gerne als Ergebnis die 90 aus der Rechner Tabelle und
nicht die 10 aus der Ausgeliehen Tabelle.

Mal ganz davon vom Rückgabefeld abgesehen.

Was mache ich da falsch??

Holt mich einer von der Leitung herunter auf der ich stehe??

Gruß

Ralf Dorn
Mit Zitat antworten
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Meinews.de
Standard Sponsored Links

  #2  
Alt 11-05-2009, 03:39 PM
Karl Donaubauer
 
Beiträge: n/a
Standard Re: Alle Datensätze einer Tabelle die in der anderen nicht vorhanden s

Ralf Dorn wrote:
> ...
> Ich habe zwei Tabellen
>
> Rechner ist 1:n mit Ausgeliehen verbunden.
>
> Nun will ich alle Rechner sehen die zurzeit nicht ausgeliehen sind.
> Also alle Rechner die nicht in der Ausgeliehen Tabelle stehen oder das
> Rückgabedatum Feld nicht leer ist. Dann sind sie eben auch frei.
>
> Wie bekomme ich den diese Abfrage hin?
> ...


Datensätze aus A, die nicht in B sind
www.donkarl.com?FAQ3.16

--
Servus
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com


Mit Zitat antworten
  #3  
Alt 11-05-2009, 06:07 PM
Ralf Dorn
 
Beiträge: n/a
Standard Re: Alle Datensätze einer Tabelle die in der anderen nicht vorhanden s

Hallo Karl,

> www.donkarl.com?FAQ3.16



vielen Dank. Ich war doch nicht auf der Leitung gestanden. Das hätte ich
nicht gewusst ;-)

Nochmals danke

Gruß

Ralf


Mit Zitat antworten
  #4  
Alt 11-05-2009, 09:19 PM
Roman Schütz
 
Beiträge: n/a
Standard Re: Alle Datensätze einer Tabelle die in der anderennicht vorhanden s

Ralf Dorn schrieb:
>
> Hallo Karl,
>
> > www.donkarl.com?FAQ3.16

>
> vielen Dank. Ich war doch nicht auf der Leitung gestanden. Das hätte ich
> nicht gewusst ;-)
>
> Nochmals danke
>

Dafür gibt es auch einen Assistenten:
Abfrage -> Neu -> Abfrage-Assistent zur Inkonsistenzabfrage

Grüsse
Roman
Mit Zitat antworten
  #5  
Alt 11-06-2009, 04:04 AM
Frank Müller
 
Beiträge: n/a
Standard Re: Alle Datensätze einer Tabelle die in der anderen nicht vorhanden s

Hallo Ralf,

Ralf Dorn wrote:

> Ich habe zwei Tabellen


> 1. Rechner
> 2. Ausgeleihen


> In Rechner gibt es die Felder


> ID
> Geraetebezeichnung
> SNR


> In Ausgeliehen:


> ID
> R-ID
> Ausleihdatum
> Rückgabedatum


> Rechner ist 1:n mit Ausgeliehen verbunden.


> Nun will ich alle Rechner sehen die zurzeit nicht ausgeliehen sind.
> Also alle Rechner die nicht in der Ausgeliehen Tabelle stehen


Dazu hast du ja schon Antworten bekommen.

> oder das
> Rückgabedatum Feld nicht leer ist. Dann sind sie eben auch frei.


Das macht mich etwas stutzig, denn was ist denn wenn ein
Rechner auf unbestimmte Zeit ausgeliehen ist und der
Ausleiher dann "irgendwann" entsprechend seiner
Kündigungsfrist für den Ausleihvertrag den Rechner
"irgendwann" zurück gibt?

Dann ist der Rechner nicht frei sondern ausgeliehen.
Wann er wieder frei wird hängt davon ab, wann
das Rückgabedatum bekannt ist, bzw. in der
Tabelle steht. Und genau so lange ist er halt
als ausgeliehen zu erfassen. Mal ganz abgesehen
davon, dass der Ausleiher das Rückgabedatum
aus irgendwelchen Gründen nicht einhält / einhalten
kann.

Gruß,
Frank

Mit Zitat antworten
  #6  
Alt 11-07-2009, 11:48 AM
Michael Sapich
 
Beiträge: n/a
Standard RE: Alle Datensätze einer Tabelle die in der anderen nicht vorhanden s

Hallo Ralf,

"Ralf Dorn" wrote:

> Hallo alle zusammen,
>
> Ich habe zwei Tabellen
>
> 1. Rechner
> 2. Ausgeleihen
>
> In Rechner gibt es die Felder
>
> ID
> Geraetebezeichnung
> SNR
> Hersteller
> Typ
> Modell
>
> In Ausgeliehen:
>
> ID
> R-ID
> Anwender
> Ort
> Ausleihdatum
> Rückgabedatum
>
> Rechner ist 1:n mit Ausgeliehen verbunden.
>
> Nun will ich alle Rechner sehen die zurzeit nicht ausgeliehen sind. Also
> alle Rechner die nicht in der Ausgeliehen Tabelle stehen oder das
> Rückgabedatum Feld nicht leer ist. Dann sind sie eben auch frei.
>
> Wie bekomme ich den diese Abfrage hin?


Unterabfragen / subqueries helfen Dir weiter.
>
> Mal angenommen es stehen in der Tabelle Rechner 100 Datensätze und in der
> Tabelle Ausgeliehen 10.
>
> Dann hätte ich jetzt gerne als Ergebnis die 90 aus der Rechner Tabelle und
> nicht die 10 aus der Ausgeliehen Tabelle.


Schritt 1:
Ermittle alle ausgeliehenen Rechner mit

SELECT t.R_ID FROM tblAusgeliehen AS t WHERE t.Rueckgabedatum IS NULL;

Schritt 2:

Die oben erstellte Abfrage als Unterabfrage in einer neuen Abfrage verwenden

SELECT r.R_ID, r.Geraetebezeichnung FROM tblRechner AS r
WHERE r.R_ID NOT IN (
SELECT t.R_ID FROM tblAusgeliehen AS t
WHERE t.Rueckgabedatum IS NULL);


Hierbei habe ich angenommen, dass beide Tabellen ueber R_ID verknuepft sind.
IMO solltest Du diese Abfrage direkt im SQL-Fenster eingeben und nicht
versuchen,
den QBE-Assistenten zu verwenden.

HTH

Michael Sapich

Mit Zitat antworten
  #7  
Alt 11-07-2009, 12:15 PM
Karl Donaubauer
 
Beiträge: n/a
Standard Re: Alle Datensätze einer Tabelle die in der anderen nicht vorhanden s

Michael Sapich wrote:
> ...
> Die oben erstellte Abfrage als Unterabfrage in einer neuen Abfrage
> verwenden
>
> SELECT r.R_ID, r.Geraetebezeichnung FROM tblRechner AS r
> WHERE r.R_ID NOT IN (
> SELECT t.R_ID FROM tblAusgeliehen AS t
> WHERE t.Rueckgabedatum IS NULL);
> ...


Unterabfragen, noch dazu mit NOT IN, sind in Access/JET keine Boliden.
Die Variante mit dem Outer Join, die er lt. seiner Antwort von vorgestern
wohl genommen hat, ist wesentlich schneller.

--
Servus
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
Mit Zitat antworten
  #8  
Alt 11-07-2009, 04:34 PM
Ralf Dorn
 
Beiträge: n/a
Standard Re: Alle Datensätze einer Tabelle die in der anderen nicht vorhanden s

Hallo Karl,
Hallo alle anderen die kir geantwortet haben,

also eigentlich bin ich noch nicht ganz am Ziel. Mit der ersten Abfrage wie
in deinem Beispiel auf deiner HP 3.16 habe ich jetzt alle DS die in Rechner
noch nie ausgeliehen wurden. Da ich aber nicht mit dem Rückgabe Datum aus
der zweiten Tabelle Ausgeliehen zurecht kam, habe ich nun eine zweite
Abfrage erstellt mit der ich die Ausgeliehen Tabelle nach allen Datensätzen
Abfrage die im Rückgabedatum <> Null ist. Diese sind also auch zur
Verfügung. Da es aber einen ewigen Verleih und Rückgabe Rythmus gibt, können
also auch mehrere DS mit dem gleichen Gerät geben die schon mal verleihen
waren und wieder zurück kamen, also öfter vorkommen mit Rückgabe Datum.

Jetzt habe ich mit gedacht, dass es doch viel einfacher wäre die Abfrage so
zu gestalten, dass ich eine Abfrage erstelle in der alle Datensätze von
Rechner angezeigt werden außer die DS aus der Tabelle Ausgeliehen die im
Feld Rückgabedatum gleich Null stehen haben.

Ein Rechner kann nur ausgeliehen werden wenn er nicht in der Tabelle
Ausgeliehen vorhanden ist und in Rückgabedatum den Wert Null hat. Das wird
beim Ausleihen Formular geprüft.


Dazu habe ich auch eine Abfrage erstellt. Tabelle Ausgeliehen und
Rückgabedatum ist Null. Aber wie bekomme ich es jetzt hin das dieses
Ergebnis als Kriterium für eine neue Abfrage Verfügbare_Rechner ergenommen
werden kann.

Oder geht es auch anders?

Gruß

Ralf




Mit Zitat antworten
  #9  
Alt 11-07-2009, 04:44 PM
Ralf Dorn
 
Beiträge: n/a
Standard Re: Alle Datensätze einer Tabelle die in der anderen nicht vorhanden s

Hallo Frank,

> Dann ist der Rechner nicht frei sondern ausgeliehen.
> Wann er wieder frei wird hängt davon ab, wann
> das Rückgabedatum bekannt ist, bzw. in der
> Tabelle steht. Und genau so lange ist er halt
> als ausgeliehen zu erfassen. Mal ganz abgesehen
> davon, dass der Ausleiher das Rückgabedatum
> aus irgendwelchen Gründen nicht einhält / einhalten
> kann.


deshalb gibt es ja die Tabelle Ausgeliehen. Dort wird die Ausgabe eines
Rechners erfasst. Und erst wenn er zurück kommt wird das Rückgabedatum
erfasst. Dann ist er wieder frei zur Verfügung. Wird er wieder ausgegeben so
wird er in der Tabelle Ausgeliehen als weiterer DS erfasst. Damit kann ich
auch einen Verlauf, sprich wie oft wurde das Gerät verliehen, von wann bis
wann war das Gerät wo usw.

Das Problem ist eben das nicht alle DS aus der Tabelle Rechner automatisch
frei sind denn es kann ja sein das in der Tabelle Ausgeliehen Rechner stehen
die noch nicht zurückgegeben sind. Daher brauche ich eine Abfrage alle DS
auch Tabelle Rechner die nicht in Tabelle Ausgeliehen vorhanden sind und.
Jetzt habe ich alle DS die noch nie verliehen wurden. Jetzt brauche ich aber
auch noch alles DS die in Ausgeliehen stehen und als Rückgabedatum gleich
Null haben. Diese muss ich anschließend auch noch aus der Tabelle Rechner
abziehen.

Oder was meinst du?


Mit Zitat antworten
  #10  
Alt 11-07-2009, 05:14 PM
Thomas Möller
 
Beiträge: n/a
Standard Re: Alle Datensätze einer Tabelle die in der anderen nicht vorhanden s

Hallo Ralf,

Ralf Dorn schrieb:
> also eigentlich bin ich noch nicht ganz am Ziel. Mit der ersten Abfrage wie
> in deinem Beispiel auf deiner HP 3.16 habe ich jetzt alle DS die in Rechner
> noch nie ausgeliehen wurden. Da ich aber nicht mit dem Rückgabe Datum aus
> der zweiten Tabelle Ausgeliehen zurecht kam, habe ich nun eine zweite
> Abfrage erstellt mit der ich die Ausgeliehen Tabelle nach allen Datensätzen
> Abfrage die im Rückgabedatum <> Null ist. Diese sind also auch zur
> Verfügung.


IMHO solltest Du es anderes herum angehen. Wenn Du als Kriterium für das
Feld "Rückgabedatum" den Wert Is Null verwendest, erhältst Du als
Ergebnis alle Rechner, die derzeit ausgeliehen sind.

Diese Abfrage und die Tabelle mit den Rechnern verwendest Du jetzt für
eine Abfrage zur Inkonsistenzsuche.


CU
--
Thomas

Homepage: www.Team-Moeller.de
Mit Zitat antworten
 
Antwort


Themen-Optionen
Ansicht

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 anzufügen
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten

vB Code ist An
Smileys sind An
[IMG] Code ist An
HTML-Code ist Aus

Ähnliche Themen
Thema Erstellt von Forum Antworten Letzter Beitrag
Aktualisierungs-Abfrage mit Parametern aus einer anderen Tabelle:nicht alle Felder werden aktualisiert Stefan Paesch Newsgroup microsoft.public.de.access 1 10-13-2009 04:25 PM
ersten und letzten 25 Datensätze einer Tabelle Steffen Newsgroup microsoft.public.de.sqlserver 7 05-06-2009 11:01 AM
Suchfunktion im Formular: Datensatz einer Tabelle suchen und die / den zugehörigen Datensatz einer anderen Tabelle anzeigen. Mica Newsgroup de.comp.datenbanken.ms-access 3 02-19-2009 06:50 PM
Werte im DropDown die noch nicht in einer anderen Tabelle genutz w Joerg M. Newsgroup microsoft.public.de.access 2 10-08-2008 07:08 PM
Problem beim Abfragen der Anzahl von Datensätzen in einer Tabelle Andrej Fraissl Newsgroup microsoft.public.de.german.entwickler.dotnet.vb 6 09-02-2008 01:19 PM


Alle Zeitangaben in WEZ. Es ist jetzt 06:24 AM Uhr.





Powered by: vBulletin Version 3.6.7 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Forum SEO by Zoints