Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Datensätzte nur in einem Datums bereich anzeigen
Cokie
myCSharp.de - Member



Dabei seit:
Beiträge: 33

Themenstarter:

Datensätzte nur in einem Datums bereich anzeigen

beantworten | zitieren | melden

verwendetes Datenbanksystem: <MSSQL>

Hallo,

ich hab ein kleines Problem wo ich schon seit einer ganzen Zeit drüber grübel.

Ich habe 3 Tabellen

Einmal Leihgerät. Einmal Leihrelation und einmal Leihauftrag.
Über die Leihrelation wird der Leihauftrag mit dem Leihgerät verknüpft.

In der Leihauftrag Tabelle gibt es u.a. die Spalten Verliehenam und zurückam.

Jetzt möchte ich das Alle Geräte angzeigt werden die verfügbar sind.

Allerdings bekomm ich das nicht hin. Hab ihr eine Idee???
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4.221
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Du kannst ja leicht ermitteln welche Geräte im Moment verliehen sind.

Mach doch einen NOT IN Select auf die verliehenen Geräte.

PS: Habe schon seit Jahren kein SQL mehr gebraucht... deshalb mache ich auch keinen Vorschlag wie das in SQL genau aussehen müsste.
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
Lennart
myCSharp.de - Member



Dabei seit:
Beiträge: 416
Herkunft: Bawü

beantworten | zitieren | melden

Hallo Cokie,

meinst du

SELECT lg.* FROM Leihgerät lg LEFT JOIN Leihrelation lr ON la.id = lr.fk LEFT JOIN Leihauftrag la ON la.id = lr.fk WHERE la.zurückam < GETDATE()
?
private Nachricht | Beiträge des Benutzers
Cokie
myCSharp.de - Member



Dabei seit:
Beiträge: 33

Themenstarter:

beantworten | zitieren | melden

Zitat von Lennart
Hallo Cokie,

meinst du

SELECT lg.* FROM Leihgerät lg LEFT JOIN Leihrelation lr ON la.id = lr.fk LEFT JOIN Leihauftrag la ON la.id = lr.fk WHERE la.zurückam < GETDATE()
?

Soweit klappt das auch.
Das problem ist ja, das ich auch ein Art "vorerfassung" brauch. Bsp.

Leihgerät:
Nokia Telefon


So Kunde A möchte gerne am 2.6.2013 das Nokia leihen. Heist ich schreib in denn leihauftrag in Spalte "Verliehenam" 2.6.2013 und die Spalte "zurückam" bleibt Null.
Jetzt möchte Kunde B das Nokia am 23.5.2013 Leihen. Das ist möglich weil das Nokia erst am 2.6 an Kunden A Verliehen wird. Das heist das Nokia muss bis zum 2.6 Sichtbar sein. Damit ich Kunden B das Nokia auch verleihen kann (Vorrausetztung ist natrülich das Kunde B am 1.6. das Nokia wieder zurückbringt).

Und da hab ich das Problem ich bekomm das nicht hin das wenn der Auftrag drin steht das Gerät in dem Zeitraum sichtbar bleibt bis das Gerät tatsächlich Verliehen ist.
private Nachricht | Beiträge des Benutzers
trib
myCSharp.de - Member



Dabei seit:
Beiträge: 689

beantworten | zitieren | melden

Zitat von Cokie
So Kunde A möchte gerne am 2.6.2013 das Nokia leihen. Heist ich schreib in denn leihauftrag in Spalte "Verliehenam" 2.6.2013 und die Spalte "zurückam" bleibt Null.
Jetzt möchte Kunde B das Nokia am 23.5.2013 Leihen. Das ist möglich weil das Nokia erst am 2.6 an Kunden A Verliehen wird. Das heist das Nokia muss bis zum 2.6 Sichtbar sein. Damit ich Kunden B das Nokia auch verleihen kann (Vorrausetztung ist natrülich das Kunde B am 1.6. das Nokia wieder zurückbringt).

Und da hab ich das Problem ich bekomm das nicht hin das wenn der Auftrag drin steht das Gerät in dem Zeitraum sichtbar bleibt bis das Gerät tatsächlich Verliehen ist.

Hi Cokie,

das löse ich eigentlich immer dadurch, dass ich das Feld mit dem Enddatum durch das Tagesdatum fülle, sofern dies leer ist.
Also:
WHERE ISNULL(la.zurückam,GETDATE()) < GETDATE()
Egal an welchem Tag das Statement ausgeführt wird, das fehlende Enddatum ist nie < Getdate :)

Schönen Feiertag,
trib
private Nachricht | Beiträge des Benutzers