SQL需要抑制一种类型的行



我在水晶报告中使用了一些数据。数据是这样的。数据中有一些冗余。唯一的区别是Tran_code

Sales_Rep   Tran_code   Order#   Amt
------------------------------------
Joe         001         1234  100.00
Joe         WOC         1234  100.00
Jon         001         5555   50.00
Sue         001         7777   70.00
Sue         WOC         7777   70.00
Sue         QUE         7777   70.00

如果一个订单只有001 Tran_code,我们想要显示001,以及其他列。

但是如果它有其他代码,那么我们不想显示001即使在Sue的例子中,我们也想显示WOCQUE

我正在寻找将根据需要呈现给cr的数据的SQL。就冗余而言,我可以在水晶分组中做到这一点。

假设您想要的结果是:

Sales_Rep   Tran_code   Order#   Amt
------------------------------------
<row omitted>
Joe         WOC         1234  100.00
Jon         001         5555   50.00
<row omitted>
Sue         WOC         7777   70.00
Sue         QUE         7777   70.00

试题:

SELECT *
FROM table1 AS t1
WHERE
( Tran_code = '001' 
  AND 0 = (
    SELECT COUNT(*) 
    FROM table1 AS t2
    WHERE t1.Sales_Rep = t2.Sales_Rep
    AND   t1.Order  = t2.Order
    AND Tran_code <> '001'))
OR
Tran_code <> '001'

可能有更有效的方法来写它,但我在这里选择明显的

相关内容

  • 没有找到相关文章

最新更新