我正在对我们的 Oracle 数据库进行查询。
目标是返回以下列 -
- 文档编号
- 文件创建日期
- 组织机构代码
- 文件状态
- 总金额
我遇到的问题是组织代码。可以有一个包含多个组织代码的文档 ID。我只想要 1 个实例 - 我不关心其余的(如果它们存在)
这是我目前拥有的 -
SELECT * FROM (SELECT DISTINCT (K_HDR.DOC_HDR_ID),
K_HDR.CRTE_DT,
FS_EXT.VAL AS ORG_CODE,
REQ.REQS_STAT_CD,
FS_DOC.FDOC_TOTAL_AMT
FROM PUR_REQS_T REQ,
KREW_DOC_HDR_T K_HDR,
FS_DOC_HEADER_T FS_DOC,
KREW_DOC_HDR_EXT_T FS_EXT
WHERE REQ.FDOC_NBR = K_HDR.DOC_HDR_ID AND
FS_DOC.FDOC_NBR = REQ.FDOC_NBR AND
REQ.FDOC_NBR = FS_EXT.DOC_HDR_ID(+) AND
FS_EXT.KEY_CD(+)= 'organizationCode' AND
(K_HDR.CRTE_DT BETWEEN TO_DATE('2011-10-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
AND
TO_DATE('2012-09-30 23:59:59', 'YYYY-MM-DD HH24:MI:SS')))
FINAL_SEARCH ORDER BY FINAL_SEARCH.CRTE_DT;
以下查询返回 14,933 行。我应该得到的正确行数是 14,789。
罪魁祸首是组织代码。例如,当我查看结果集时,我看到以下内容 -
DOC_ID CRTE_DT ORG_CD STAT TOTAL
.
.
.
496256 5-OCT-11 0 CLOS 2779.89
496258 5-OCT-11 8050 CLOS 1737.5
496258 5-OCT-11 8000 CLOS 1737.5
.
.
.
如何摆脱 FS_EXT 表中令人讨厌的 496258 的第二个实例?(显然我需要摆脱相同类型重复值的其他实例)