全部,導致ORA-00913的ROW_NUM函數:值太多錯誤?甲骨文
我想在祖父母表中配對兩個或多個記錄,以便我可以使用一個孫子從其中找到它的大孩子記錄。
所以結構像這樣
- S_ASSET X 1的記錄
- S_ASSET_X ×2子記錄
- CX_ASSET_XM X 1盛大子記錄
因此基數是一個祖父母可以有2個Gr小孩記錄
此CX_ASSET_XM表將保存有關Grandchild資產的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數據庫版本是10g企業版發佈10.2.0.3。0 - 64
我不確定我完全理解你需要完成什麼,你能提供一個帶有記錄等所有ID和預期輸出的樣本數據嗎? –