我在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时选择,但我不确定如何编码或是否可以完成。
答案 0 :(得分:3)
这似乎是你要求的......
select * from yourtable
where transcode = '001'
and order# not in (select order# from yourtable
where transcode <> '001'
)
答案 1 :(得分:2)
以下代码将生成表格中只包含order
和transcode
的所有组合的列表(这样您就不需要对任何内容进行硬编码):
SELECT order, MAX(amount), transcode
FROM theTable
GROUP BY order, transcode
HAVING COUNT(order) = 1