ibm我是db table所需的COUNT

时间:2014-09-05 13:23:42

标签: sql db2 db2-400

我在ibm i中有一张表是这样的:

Order#     Amt        Transcodes

123         100           001
123         100           @23
123          100          CWU

我有一个报告,我误解了一点。主报告显示所有不是'001'的转码,子报告只显示所有001。

这不是他们想要的。如果没有其他代码,他们只想要子报告中的001,在我们上面的案例中,我们不想调用子报告。

如果只有

Order#     Amt        Transcodes

123         100           001

然后我们想要这一行。

在服务器上,我想创建一个包含那些只有001的行的视图 而没有其他的代码。

Select * where transcodes = '001'

并且订购#不在'这里我必须硬编码''所有代码'?

还是有办法像计数一样吗?因为他们会在仓库中添加代码......

我真的想做一个计数,然后只在count = 1时选择,但我不确定如何编码或是否可以完成。

2 个答案:

答案 0 :(得分:3)

这似乎是你要求的......

select * from yourtable
where transcode = '001'
  and order# not in (select order# from yourtable
                         where transcode <> '001'
                    )

答案 1 :(得分:2)

以下代码将生成表格中只包含ordertranscode的所有组合的列表(这样您就不需要对任何内容进行硬编码):

SELECT order, MAX(amount), transcode
FROM theTable
GROUP BY order, transcode
HAVING COUNT(order) = 1