2016-07-18 4 views
-1

Ich habe eine Frage, die besagt, Schreiben Sie eine SELECT-Anweisung, um eine Liste der Mitarbeiter im Zeitraum von Juli 1998 bis Dezember 1999 eingestellt zu bekommen. Die Liste muss die Mitarbeiter-ID enthalten, den Vor- und Nachnamen und das Monatsgehalt - vorausgesetzt, dass die Tabelle das Jahresgehalt enthält und dass die Mitarbeiter 12 Gehälter pro Jahr erhalten.Abfrage-SQL-Entwickler

Ich schrieb dies, funktioniert aber nicht:

SELECT FIRST_NAME, LAST_NAME, EMPLOYEE_ID, SALARY/12 as MONTHLY_SALARY 
FROM HR.EMPLOYEES 
WHERE HIRE_DATE BETWEEN JULY-1998 AND DECEMBER-1999 ; 
+1

Mysql oder SqlServer? – scaisEdge

+0

Was ist das Problem? Was für ein Ergebnis hast du? Können Sie versuchen, einen Abstand zwischen dem/und Gehalt sowie 12 zu setzen? – StevenWalker

+0

@scaisEdge SqlServer –

Antwort

0

Könnte Sie ein falsches Datumsformat haben (mysql)

SELECT FIRST_NAME, LAST_NAME, EMPLOYEE_ID, SALARY/12 as MONTHLY_SALARY 
FROM HR.EMPLOYEES 
WHERE HIRE_DATE BETWEEN STR_TO_DATE('07-01-1998, '%m-%d-%Y) 
     AND STR_TO_DATE('12-31-1999, '%m-%d-%Y) D ; 

Für Sqlserver

SELECT FIRST_NAME, LAST_NAME, EMPLOYEE_ID, SALARY/12 as MONTHLY_SALARY 
FROM HR.EMPLOYEES 
WHERE HIRE_DATE BETWEEN Cast('07-01-1998'as datetime) 
     AND Cast('12-31-1999' as datetime) ; 

Und für ORACLE

SELECT FIRST_NAME, LAST_NAME, EMPLOYEE_ID, SALARY/12 as MONTHLY_SALARY 
FROM HR.EMPLOYEES 
WHERE HIRE_DATE BETWEEN TO_DATE('07-01-1998' , 'MM-DD-YYYY') 
     AND TO_DATE('12-31-1999' , 'MM-DD-YYYY') ; 
+0

@JoelCoehoorn ist jetzt sehen .. – scaisEdge

+0

Vielen Dank für das Feedback, das es funktioniert –