Query Datum innerhalb eines Zeitraums

Hi, habe folgendes Problem.

Es handelt sich hierbei um eine Datenbank die verwaltung von Kunden, verwaltung der Produkte (fernseher) und die verträge die dazwischen entstehen erfasst.

Die Equipment Tabelle hat folgende Attribute: EquipmentCode, Description, InitialCost, RecMonthlyRentalRate, Obsolete (YES/NO - soll auskunft darüber geben ob equipment noch aktuell ist oder nicht)

Die installedequipment Tabelle hat folgende Attribute: ReferenceNumber, CustomerNo, EqupimentCode, ACtualmonthlyrentalrate, rentalperiodstart,rentalperiodend

Nun will ich ein query schreiben das mir das aktuell verfügbare equipment ausgibt. Dh das equipment das weder auf obsolete steht (equipment tabelle) noch gerade ausgeliehen ist (installedquipment tabelle).

Soweit habe ich folgendes zustande gebracht:
SELECT *
FROM equipment, installedequipment
WHERE equipment.Obsolete=No And Not (Date()RentalPeriodStart);

Er zeigt mir daraufhin schonmal kein Equipment an das obsolete ist. Allerdings scheint das mit dem Datum nicht zu funktionieren. Was mache ich falsch?

Vielen Dank im voraus.

Falls das wichtig ist: ich benutze Access 2003.

Gruß,
Bob

Hallo,

Es handelt sich hierbei um eine Datenbank die verwaltung von
Kunden, verwaltung der Produkte (fernseher) und die verträge
die dazwischen entstehen erfasst.

Die Equipment Tabelle hat folgende Attribute: EquipmentCode,
Description, InitialCost, RecMonthlyRentalRate, Obsolete
(YES/NO - soll auskunft darüber geben ob equipment noch
aktuell ist oder nicht)

Die installedequipment Tabelle hat folgende Attribute:
ReferenceNumber, CustomerNo, EqupimentCode,
ACtualmonthlyrentalrate, rentalperiodstart,rentalperiodend

Nun will ich ein query schreiben das mir das aktuell
verfügbare equipment ausgibt. Dh das equipment das weder auf
obsolete steht (equipment tabelle) noch gerade ausgeliehen ist
(installedquipment tabelle).

Soweit habe ich folgendes zustande gebracht:
SELECT *
FROM equipment, installedequipment
WHERE equipment.Obsolete=No And Not (Date()RentalPeriodStart);

Er zeigt mir daraufhin schonmal kein Equipment an das obsolete
ist. Allerdings scheint das mit dem Datum nicht zu
funktionieren. Was mache ich falsch?

Versuch es so:

SELECT *
FROM equipment inner join installedequipment
on equipment.equipmentNo = installedequipment.equipmentNo
WHERE equipment.Obsolete = 0 And
Not (Date() between installedequipment.RentalPeriodEnd And installedequipment.RentalPeriodStart);

Vielen Dank im voraus.

Falls das wichtig ist: ich benutze Access 2003.

Kenntnis darüber ist meistens von Vorteil…

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hi Franz,

vielen Dank für die schnelle Antwort.

Ich habe es versucht aber ies gibt da noch ein Poblem. Die Fernseher könnten mehrmals ausgeliehen werden.

So zeigt er mir z.B. Fernseher 2 mit den Daten 01.06.2010 - 31.10.2010 an berücksichtigt dabei aber nicht das es auch noch einen Eintrag gibt der Fernseher 2 vom 01.03.2010 - 30.04.2010 als vermietet angibt.

Irgendeine Idee?

Danke & Gruß,
Bob

Hallo,

vielen Dank für die schnelle Antwort.

Ich habe es versucht aber ies gibt da noch ein Poblem. Die
Fernseher könnten mehrmals ausgeliehen werden.

So zeigt er mir z.B. Fernseher 2 mit den Daten 01.06.2010 -
31.10.2010 an berücksichtigt dabei aber nicht das es auch noch
einen Eintrag gibt der Fernseher 2 vom 01.03.2010 - 30.04.2010
als vermietet angibt.

der zweite Eintrag sollte aber gar nicht selektiert sein (heute ist der 29.04.2010)…

Ansonsten versuch:

SELECT *
FROM equipment where Obsolete = 0 And equipmentNo in
(Select equipmentNo from installedequipment
WHERE Not (Date() between installedequipment.RentalPeriodEnd And installedequipment.RentalPeriodStart)

sorry habe mich undeutlich ausgedrückt. Der Eintrag den ich genannt hab erscheint auch nicht. Aber er existiert in der installedquipment Tabelle, was ja bedeutet das der Fernseher momentan ausgeliehen ist. Insofern sollte das Gerät auch nicht ausgegeben werden…ich fürchte mein Ansatz ist noch ganz falsch.

ich fürchte mein Ansatz ist noch ganz falsch.

warum? du wolltest doch genau das sehen: alle für den Suchtag verfügbaren Fernseher.

Grüße aus Rostock
Wolfgang
(Netwolf)