2016-07-18 5 views
-1

У меня вопрос, который говорит: Напишите инструкцию SELECT, чтобы получить список сотрудников, нанятых в период с июля 1998 года по декабрь 1999 года. Список должен содержать идентификатор сотрудника последнего и первого имени и месячную зарплату - при условии, что таблица содержит годовую зарплату и что сотрудники получают 12 зарплат в год.Query-SQL Developer

Я написал это, но не работает:

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 или SqlServer? – scaisEdge

+0

В чем проблема? Какой результат вы получаете? Можете ли вы попытаться поставить пробел между/и зарплатой, а также 12? – StevenWalker

+0

@scaisEdge SqlServer –

ответ

0

Может быть, у вас есть неправильный формат даты (для 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 ; 

Для 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) ; 

И для 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 теперь видит .. – scaisEdge

+0

Спасибо за отзывы, которые он работает –