oracle-sql-Abfrage, um eine Liste aller Datumsangaben des vorherigen Monats
Jungs ich habe eine Anforderung, um eine Liste aller Termine des letzten Monats wie unten
20101201
20101202
20101203
20101204
20101205
..
..
..
..
..
..
..
..
20101231
bitte lassen Sie mich wissen, wenn keine bessere Art und Weise zu tun, als diese Abfrage.
select TO_CHAR(TRUNC(SYSDATE,'MM')-1,'YYYYMMDD')-(level-1) as
EACH_DATE from dual A connect by level
< (TO_NUMBER(TO_CHAR(TRUNC(SYSDATE,'MM')-1,'DD'))+1)
Auch bitte lassen Sie mich wissen, das problem mit dieser Abfrage sagt es "fehlende Rechte Klammer"
SELECT /*+ PARALLEL (A,8) */ /*+ DRIVING_STATE */
TO_CHAR(TRUNC(TRUNC(SYSDATE,'MM')-1,'MM'),'MONYYYY') "MONTH", TYPE AS "TRAFF", COLUMN, A_COUN AS "A_COUNT",COST FROM DATA_P B WHERE EXISTS
(
select TO_NUMBER(TO_CHAR(TRUNC(SYSDATE,'MM')-1,'YYYYMMDD')-(level-1)) EACH_DATE
from dual A connect by level < TO_NUMBER(TO_CHAR(TRUNC(SYSDATE,'MM')-1,'DD')+1)
WHERE A.EACH_DATE = B.DATE order by EACH_DATE ASC
)
hervorgehobenen text
InformationsquelleAutor Dead Programmer | 2011-01-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klingt es wie Sie wollen, so etwas wie dieses
InformationsquelleAutor Justin Cave
für aktuellen Monat :
InformationsquelleAutor M Naveed Raza
Etwas add_months würde auf jeden Fall machen Sie es besser, als in z.B.
hmm... möchten Sie vielleicht zu ersetzen all_objects mit etwas anderem, im Idealfall eine Tabelle mit 31 records
über den Fehler... " - SPALTE ist ein Schlüssel-Wort, versuchen
"COLUMN"
statt; dasselbe mit"TYPE"
irgendeine Idee, auf der anderen Abfrage mit Fehler.
InformationsquelleAutor Erich Kitzmueller
Kann dies ein wenig leichter zu verstehen:
Jedoch die "connect by level" - Methode ist den meisten klar, und wie beschrieben hier, schneller zu generieren, die Reihenfolge der zahlen. Ich glaube nicht, dass es keine Möglichkeit gibt, um dramatisch verbessern Sie Ihre Abfrage.
diese Abfrage funktioniert für alle Monate. betrachten Sie die Bedingung
where d < TRUNC(SYSDATE, 'MM')
.InformationsquelleAutor sat.oh
Soweit die Rechte Klammer ist besorgt, Sie versuchen, Sie zu verketten von Zeichenfolgen der falsche Weg:
funktionieren sollte:
Natürlich werden Sie nicht wollen, dass die Verkettung zu passieren. Deshalb denke ich, dass Sie wirklich wollen, fügen Sie die Ebene, um die
TRUNC()
-TeilUpdate:
InformationsquelleAutor sjngm