2016-11-08 5 views
-3

Ich habe eine Tabelle mit Mitarbeiterinformationen, wobei eines der Felder mietbar ist.SQL wiederkehrende Monate zwischen einem Min- und Max-Datum

Wie zuerst ich, rufen Sie die Monate zwischen dem jüngsten und leitenden Angestellten,

dann diese Nummer nehmen und um es auf die nächste ganze Zahl (und der Name dieses Feld „Alt gegen Young“?

Dank

+0

lesen Sie bitte [wie Fragen an] (http://stackoverflow.com/help/how-to-ask) zuerst. –

+0

Lernen Sie "Spalte" anstatt "Feld" zu sagen, wenn Sie mit relationalen Datenbanken wie Oracle arbeiten werden; und erstellen Sie KEINE Gewohnheit, um Ihren Spalten Namen mit Leerzeichen und Punkten zu geben. 'old_vs_new' ist ein viel besserer Spaltenname als der von Ihnen gewählte. – mathguy

Antwort

1

Oracle hat die Funktion months_between() den Unterschied in Monaten zu berechnen, und round() zu - na ja, Sie ahnen es, rund die Lösung zeigt Ihnen auch, wie eine Spalte „Name“ (wie es ein geben. "Alias" - der Fachausdruck für diesen Vorgang.

Mit der EMP-Tabelle in dem Standard-SCOTT-Schema als Beispiel:

select min(hiredate) as min_date, max(hiredate) as max_hiredate, 
     round(months_between(max(hiredate), min(hiredate))) as diff_months 
from emp 
; 


MIN_HIREDATE MAX_HIREDATE  DIFF_MONTHS 
------------ ------------ --------------- 
1980-12-17 1987-05-23    77 
Verwandte Themen