我有一个看似简单的要求,但我不能让它发挥作用。我想在结果集中排除满足两个条件的特定记录,单击下面的图像以查看我当前的结果集:https://i.stack.imgur.com/z93m3.png。我想排除任何同时具有售价84.99英镑和vat_value为40.83英镑的行,在我的情况下,这意味着我希望排除结果集图像的最后一行。
我试图将以下内容用作我的SQL代码:
SELECT created_by, sales_order_number, sales_order_credit_line, qty_credited, sales_order_line, selling_price, vat_value
FROM sales_order_credit
WHERE (selling_price <> 84.99 AND vat_value <> 40.83)
但是,只要我再运行查询,查询设计器就会将我的代码重新格式化为:
SELECT created_by, sales_order_number, sales_order_credit_line, qty_credited, sales_order_line, selling_price, vat_value
FROM sales_order_credit
WHERE (selling_price <> 84.99) AND (vat_value <> 40.83)
因为我的代码现在是这样的,所以它排除了售价为84.99英镑的所有行以及所有具有£40.83的vat_value的行,这不是我想要的 - 我只想排除坚持两者的行这些条件。
我以前遇到过这种情况,但从来不知道应该怎么做 - 真的很感激任何帮助。
雅各
编辑 - 对评论的回应
VKP - 感谢您的建议,当我添加您的代码时,它会更改为:
SELECT created_by, sales_order_number, sales_order_credit_line, qty_credited, sales_order_line, selling_price, vat_value
FROM sales_order_credit
WHERE (NOT (selling_price = 84.99))
OR
(NOT (vat_value = 40.83))
同样,它需要两个并将它们置于由OR分离的完全独立的条件下 - 这不是我正在寻找的
普遍存在的开发人员 - 有区别,如果您执行重新格式化的代码版本,它将排除第4行和第2行,而我只希望排除第4行,因为它满足两个条件,而行2只满足1个条件(selling_price)
答案 0 :(得分:0)
WHERE(selling_price&lt;&gt; 84.99)或(vat_value&lt;&gt; 40.83)
亲自尝试:rextester
答案 1 :(得分:0)
我认为在你的情况下做的正确的事情是下一个:
SELECT created_by, sales_order_number, sales_order_credit_line, qty_credited, sales_order_line, selling_price, vat_value
FROM sales_order_credit
WHERE NOT (selling_price = 84.99 AND vat_value = 40.83)