全部,
我正在尝试将祖父母表中的两条或多条记录配对,以便我可以使用一个孙子项来查找其孙子记录。
所以结构是这样的
- S_ASSET x 1 记录
- S_ASSET_X x 2 个子记录
- CX_ASSET_XM x 1 个大子记录
因此基数是 1 个 Grandparent 可以有 2 个 Grandchild 记录
此 CX_ASSET_XM 表将保存有关孙资产的 TCP/IP 调用的信息。这些调用不同步。因此,一个孙子资产今天可能会打电话,但另一个自昨天以来就没有打电话。
在我的查询中,我找到今天创建的所有孙子记录(sysdate),然后向上遍历关系以找到祖父母,然后向下遍历以找到孙子元组中的另一个双胞胎。
我的查询的问题是它返回了每一个 TCP/IP 调用,但我只想分析每个孙子的最新回调
这是一个插图
因此,为了最小化我的结果集,我尝试使用 ROW_NUM 函数来仅获取我需要的结果,即每个大子记录的最近回调日期。
询问
SELECT cb.ssid, cb.created_by, cb.callback_date, cb.callback_num,
asset.desc_text, asset.prom_integ_id, asset.integration_id
--Traversing Up to find the Grandparent record of
FROM SIEBEL.CX_ASSET_XM cb
JOIN SIEBEL.S_ASSET_X assetx ON cb.SSID = assetx.attrib_37
JOIN SIEBEL.S_ASSET asset ON assetx.par_row_id = asset.row_id
WHERE asset.prom_integ_id IN
--Traversing Down to find the other pair
( SELECT asset.prom_integ_id,
ROW_NUMBER() OVER (PARTITION BY cb.ssid
ORDER BY cb.callback_date DESC)
FROM SIEBEL.CX_ASSET_XM cb
JOIN SIEBEL.S_ASSET_X assetx ON cb.ssid = assetx.attrib_37
JOIN SIEBEL.S_ASSET asset ON assetx.par_row_id = asset.row_id
);
错误
ORA-00913: too many values
00913. 00000 - "too many values"
*Cause:
*Action:
Error at Line: 7 Column: 36
我在这个查询结构中正确使用了 ROW_NUM 和 PARTITION 吗?
谢谢
ORACLE DB 版本为10g 企业版 Release 10.2.0.3.0 - 64bit