如何调试此SQL查询?
我运行了这段代码,但它不起作用(我希望得到一个结果集,但没有得到): 但是如果我运行查询如何调试此SQL查询?,sql,Sql,我运行了这段代码,但它不起作用(我希望得到一个结果集,但没有得到): 但是如果我运行查询 select max(salary) from employees where hire_date between '2002-01-01' and '2003-12-31'; 及 它们运行良好最高(工资)来自第二个查询的值为24000.00 这是我尝试练习的网站(问题34) 使用子查询进行筛选时,请使用“IN”子句而不是“=” SELECT e.employee_id, e.first_n
select max(salary) from employees where hire_date between '2002-01-01' and '2003-12-31';
及
它们运行良好<代码>最高(工资)来自第二个查询的值为24000.00
这是我尝试练习的网站(问题34)
使用子查询进行筛选时,请使用“IN”子句而不是“=”
SELECT e.employee_id,
e.first_name,
e.last_name,
e.salary,
d.department_name,
l.city
FROM employees e
JOIN departments d
ON e.department_id = d.department_id
JOIN locations l
ON l.location_id = d.location_id
WHERE e.salary IN (SELECT Max(salary)
FROM employees
WHERE hire_date BETWEEN '2002-01-01' AND '2003-12-31');
子查询缺少括号
SELECT e.employee_id,
e.first_name,
e.last_name,
e.salary,
d.department_name,
l.city
FROM employees e
JOIN departments d
ON e.department_id = d.department_id
JOIN locations l
ON l.location_id = d.location_id
WHERE e.salary = (SELECT Max(salary)
FROM employees
WHERE hire_date BETWEEN '2002-01-01' AND '2003-12-31');
你说不工作是什么意思?我没有从查询中得到结果。我正在使用浏览器编写代码。这是一个侧面的网站注:根据SQL标准,此:
'2002-01-01'
是字符串文字,而此:date'2002-01-01'
是日期文字。因此,在日期字符串前面加上单词date
,以避免字符串/日期转换和可能出现的复杂情况(尽管不太可能有任何复杂情况)。Max
withoutgroupby
将返回一条记录。所以=
应该可以工作。
SELECT e.employee_id,
e.first_name,
e.last_name,
e.salary,
d.department_name,
l.city
FROM employees e
JOIN departments d
ON e.department_id = d.department_id
JOIN locations l
ON l.location_id = d.location_id
WHERE e.salary IN (SELECT Max(salary)
FROM employees
WHERE hire_date BETWEEN '2002-01-01' AND '2003-12-31');
SELECT e.employee_id,
e.first_name,
e.last_name,
e.salary,
d.department_name,
l.city
FROM employees e
JOIN departments d
ON e.department_id = d.department_id
JOIN locations l
ON l.location_id = d.location_id
WHERE e.salary = (SELECT Max(salary)
FROM employees
WHERE hire_date BETWEEN '2002-01-01' AND '2003-12-31');