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.

Empfohlene Antworten

Veröffentlicht

Servus !

Ich habe ein Datum in einer Tabelle meiner Datenbank stehen und möchte nun überprüfen ob dieses Datum in einem bestimmten Intervall liegt.

Hier mal der ganze Code meines Select-Statements:

select gesamtbetrag, vorname, name

from

(select name, vorname, sum(menge*preis) as gesamtbetrag

from

mitarbeiter m inner join bestellung b

on m.pers_nr = b.pers_nr

inner join bestellposition bp

on b.pers_nr = bp.pers_nr an

b.bestell_nr = bp.bestell_nr

inner join wird_abgebildet_auf waa

on bp.katalog_nr = waa.katalog_nr and

bp.pers_nr = waa.pers_nr and

bp.bestell_nr = waa.bestell_nr

inner join lieferaehigkeit lfk

on waa.katalog_nr = lfk.katalog_nr

where to_date(datum,'dd.mm.yyyy') between to_date('15.05.08','dd.mm.yyyy') and to_date('20.05.08','dd.mm.yyyy') and lower(name) like '%von%'

group by name, vorname

);

Die fettmarkierte Stelle zeigt den gewünschten Vergleich innerhalb der where Klausel. Ich bekomme ständig die Meldung, dass die rechte Klammer fehlt :rolleyes: Verstehe allerdings nicht warum.

Kann ich einen Datumsvergleich so überhaupt durchführen?

  • Autor

Es hat an dem "and" gelegen, weil ich dort ein d vergessen hatte. Außerdem habe ich noch einen Tabellennamen falschgeschrieben. Ich gehe mal davon aus, dass ich die Datumsabfrage so ich es mir vorgestellt habe, ausführen kann. Bei einem anderen Beispiel, was ich ausprobiert habe, klappte es.

Mal was anderes:

Wie ihr in meinem Beispielcode sehen konntet, habe ich mehrere Tabellen mit Inner joins und der on-Klausel verknüpft. Wenn ich dasselebe Beispiel mit einem einfach JOIN Befehl und der using Klausel abarbeite, komme ich zu einem anderen Ergebnis.

Was ist denn nun besser? Inner Joins oder die andere Variante?

Hier der alternative Quellcode:

SELECT sum(menge*preis)||' EURO' AS "Gesamtbetrag", vorname||' '||name AS "Besteller"

FROM bestellposition

JOIN bestellung USING(bestell_nr, pers_nr)

JOIN wird_abgebildet_auf USING (bestell_nr,pers_nr, katalog_nr)

JOIN lieferfaehigkeit USING(katalog_nr, lief_nr)

JOIN mitarbeiter USING(pers_nr)

WHERE datum between to_date('15.06.2006','DD.MM.YYYY') AND to_date ('20.06.2006','DD.MM.YYYY')

GROUP BY name, vorname

HAVING UPPER(name)LIKE '%VON RAND%';

Datnekbank ist im Anhang !!

Vielen Dank !!

post-50137-14430447970167_thumb.jpg

Inhalt_Tables_1Seite.pdf

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

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.