Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SQL Abfrage

Empfohlene Antworten

Veröffentlicht

Hi,

ich hab folgende Abfrage:


SELECT     PERSONAL.NACHNAME, PERSONAL.VORNAME, PERSONAL.NR, BUCH_ZEI.DATUM

FROM         PERSONAL INNER JOIN

                      BUCH_ZEI ON PERSONAL.NR = BUCH_ZEI.PERSON_NR

WHERE     (PERSONAL.ABTEIL = 02) AND (BUCH_ZEI.DATUM = CONVERT(DATETIME, '2003-11-17 00:00:00', 102))

ORDER BY PERSONAL.ABTEIL, PERSONAL.NACHNAME

Jetzt bekomme ich ja logischerweise nur die Daten vom 12.11.2003...

Ich brauche jedoch alle Personen aus der "Personal" Tabelle...

Später will ich dann mit php prüfen ob diese Person "nicht gebucht" oder "gebucht" hat.

Ich müsste den WHERE String "(BUCH_ZEI.DATUM = CONVERT(DATETIME, '2003-11-17 00:00:00', 102))" irgendwie als Select string nehmen.

Geht das irgendwie?

Gruß

debitux

Du willst in EINER Abfrage

a) alle Personen

und

B) entsprechende Logs respektive NULL,

ABER trotzdem nach Datum begrenzen?

Es wäre zwar einfacher, logisch davon auszugehen, dass fehlende Einträge einem NICHT GEBUCHTEN Zustand entsprechen, aber hey, es geht auch mit SQL. ;)

Schauen wir mal, ob ich dich richtig verstanden habe:

SELECT a.nachname, a.vorname, a.nr, b.datum

FROM personal AS a LEFT OUTER JOIN [buch_zei] AS b

ON a.nr = b.person_nr

WHERE b.datum IS NULL OR b.datum = CONVERT(DATETIME, '2003-11-17 00:00:00', 102)

Hi,

danke für deine Antwort, hab das eben mal ausprobiert....

Leider hats nicht geklappt. Es werden immernoch die Benutzer ausgegeben die zum an gegebenen Datum abgefragt werden. Ich denke auch das es logischer ist wenn wenn nur die aktuellen abgefragt werden. Aber mein Chefi braucht alle Benutzer in der Datenbank.... :-)

Wie wäre es wenn ich nicht nach dem Datum Abfrage sondern nur nach der letzten Buchung? Dann hätte ich alle Benutzer und könnte mittels PHP nochmals das Datum in der Datenbank mit dem abzufragenden Datum vergleichen... Müsste doch eigentlich funzen oder?

Gruß

debitux

Hier ist noch die SQL Abfrage die ich ausprobiert hatte...


SELECT     a.NACHNAME, a.VORNAME, a.NR, b.DATUM

FROM         PERSONAL a LEFT OUTER JOIN

                      BUCH_ZEI b ON a.NR = b.PERSON_NR

WHERE     (b.DATUM IS NULL) OR

                      (b.DATUM = '19.11.2003')

ORDER BY a.NACHNAME

Mir fällt grad auf,

"BUCH_ZEI.DATUM IS NULL"

kann nicht funzen weil dann nur nach Daten gesucht wird wo garnix in der Tabelle steht ;-) Oder?

Gruß

Debitux

Hat sich erledigt jetzt funzt alles... :)

Gruß

debitux

'ello debitux,

würdest du bitte das 'finale' statement noch einmal posten. Ich möchte gern abgleichen, wie weit ich gedanklich von deiner Anforderung entfernt war.

Danke.

  • 2 Monate später...

Achso :-) Klar kann ich machen. Aber erst nächste Woche... Habe den Artikel leider nach dem es funktioniert hat nicht weiterverfolgt. Sorry. :-)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.