2016-07-29 103 views
2

我有一个查询返回付款代码和任务不匹配的交易。但是,有几个薪酬代码/任务组合可以被忽略,例如“薪资”/“薪资调整”。如何用一个除非写一个SQL查询过滤器?

是否有写的查询是这样一种方式:

select user, trxdate, paycode, task from TABLE 
where paycode <> task 
--unless when paycode = "Salary" the task = "SalaryReg" 

任何建议,将不胜感激!谢谢!

+1

不,提问者希望从查询中排除这些行。 –

回答

0
select user, trxdate, paycode, task from TABLE 
where paycode <> task 
and not 
(
    (paycode = "Salary" AND task = "SalaryReg") 
OR 
    (paycode = "Janitorial" AND task = "Cleaning") 
OR 
    (paycode = "FrontDesk" AND task = "GreetingCustomers") 
) 
1

查询下面将选择从表中的所有记录,其中paycode <> task,除了当paycodeSalarytaskSalaryReg

SELECT user, 
     trxdate, 
     paycode, 
     task 
FROM yourTable 
WHERE paycode <> task AND 
    (paycode <> "Salary" OR task <> "SalaryReg") -- this condition only kicks in when 
                -- paycode = "Salary" AND 
                -- task = "SalaryReg"