Ich möchte Sie fragen, wie ich ein bestimmtes Datum (DD-MON) aus dem Datumsbereich (DD-MON-YY) von Oracle SQL ermitteln kann? Das ist, was ich habe:Zähle spezifisches Datum im Datumsbereich in SQL
MEMBERS INSTALL_D DOB SYSDATE
6934109 22-FEB-12 18-NOV 09-JAN-17
6934109 22-FEB-12 13-JUN 09-JAN-17
6934109 22-FEB-12 12-AUG 09-JAN-17
6934109 22-FEB-12 24-OCT 09-JAN-17
6934109 22-FEB-12 04-FEB 09-JAN-17
I DOB von Datumsbereich INSTALL_D und SYSDATE zählen möchten. Lassen Sie uns sagen, dass die
- Reihe mit 18 NOV 5 mal erscheinen wird,
- Reihe mit 13-Juni ist 5 mal erscheinen,
- Reihe mit 12-August ist 5 mal erscheinen,
- Reihe mit 24-OCT ist apeear 5 mal
und das letzte ist nur 4 mal.
so sollte das Ergebnis wie:
MEMBERS INSTALL_D DOB SYSDATE COUNT(DOB)
6934109 22-FEB-12 18-NOV 09-JAN-17 5
6934109 22-FEB-12 13-JUN 09-JAN-17 5
6934109 22-FEB-12 12-AUG 09-JAN-17 5
6934109 22-FEB-12 24-OCT 09-JAN-17 5
6934109 22-FEB-12 04-FEB 09-JAN-17 4
I MONTHS_BETWEEN Funktion versucht, aber das ist nicht das, was ich bekommen möchten.
EDIT:
Ich werde genauer sein. Ich habe diese Abfrage die erste Tabelle oben zu bekommen:
select B0022HOME_NO as Members, B0022INSTALLDATE as INSTALL_DATE, to_char(to_date (encryption.decrypt(a.B0031MEMDATEOFBIRT),'DD-MON-YYYY'),'DD-MON')as DOB, SYSDATE from BT0022, BT0031 a where B0022HOME_NO=a.B003101HOME_NO and BT0022.B0022HOME_NO=6934109;
INSTALL_D
Tag der Instalation ist, die in diesem Beispiel 22-FEB-12
DOB
Geburtstag Mitglied ist. Nur Tag und Monat (DD-MON)
SYSDATE
ist für das aktuelle Datum. Nehmen wir an, wenn das Sysdate 18-NOV-12 und INSTALL_D 22-FEB-12 und DOB des Elements 18-NOV ist, bedeutet das, dass das DOB einmal in diesem Datumsbereich auftritt.
Im Beispiel: INSTALL_D 22-FEB-12 und SYSDATE 09-JAN-17 ist DOB von 18-NOV auftreten 5 mal, aber wenn das SYSDATE 18-NOV-17 sein wird, wird es 6-mal. Und genau darum habe ich dich im Datumsbereich nach Count (DOB) gefragt.
Vielen Dank im Voraus
Spaltendatentypen? Welche DBMS verwendest du? – jarlh
INSTALL_D-Spalte ist DATE-Typ und DOB ist varchar2. DBMS ist Oracle Database 10g Release 10.2.0.1.0 - 64bit – Matej
Severa Probleme mit diesem Setup. Warum ist "SYSDATE" eine Spalte in dieser Tabelle? SYSDATE ist eine Systemfunktion, ihr Wert wird im laufenden Betrieb berechnet, sie wird nicht in Tabellen gespeichert. Wollten Sie SYSDATE verwenden (aber haben Sie dafür keine Spalte in der Tabelle) oder wollten Sie ein gespeichertes Datum verwenden, das nicht als "SYSDATE" bezeichnet werden sollte? Dann - wollten Sie die Spalte MITGLIEDER so ändern, dass Sie nicht den gleichen Wert in allen Zeilen haben? (Ich nehme nicht an, dass das gleiche Mitglied unterschiedliche Geburtsdaten hat). Warum wird das DOB auch als VARCHAR2 gespeichert, anstatt ein Datum (einschließlich des Jahres) zu sein? – mathguy