我是新来的,所以请原谅我,如果这可以用更好的措辞。
我需要返回以下人员的详细信息:
c级,工资不等于9.00
或
d级工资不等于9.75
例如
SELECT
paam.ASSIGNMENT_NUMBER,
cs.SALARY_AMOUNT,
pgf.NAME Grade
FROM
CMP_SALARY cs,
PER_ALL_ASSIGNMENTS_M paam,
PER_GRADES_F_TL pgf
WHERE
pgf.GRADE_ID = paam.GRADE_ID
AND cs.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND (pgf.name = 'C' AND cs.SALARY_AMOUNT <> '9.00')
or (pgf.name = 'D' AND cs.SALARY_AMOUNT <> '9.75')
如果您能提供任何帮助,我们将不胜感激。:)
1条答案
按热度按时间uajslkp61#
问题是逻辑上的预设。
or
优先级低于and
,所以你需要把整个or
带圆括号的条件。所以基本上改变这个:
收件人:
内圆括号不是严格需要的(出于上述原因),但它们使意图更清楚。
我还建议重写查询以使用标准的显式连接,而不是老式的隐式连接。顺便说一句,这消除了前相关性问题: