0
任何人都可以幫助我理解這個Db2查詢語法有什麼問題,它與SQLCODE -120失敗,因爲我嘗試使用row_number()?DB2 - 集合函數的無效使用SQLCODE = -120
SELECT COUNT(ORDER_ID) OVER() TOTAL_NO_OF_RECORDS,
ROW_NUMBER() OVER (ORDER BY CREATED_DATE DESC) AS ROW_NUM
FROM (
SELECT DISTINCT A.ORDER_ID ORDER_ID,
B.AgencyName AS AGENCY_NAME,
C.FirstName FIRST_NAME,
C.LastName LAST_NAME,
DEMOGRAPHIC.State STATE,
A.CreatedTS CREATED_DATE,
E.WritingTIN WRITING_TIN,
E.ParentTIN PARENT_TIN
FROM DBO.TABLE1 A
INNER JOIN
DBO.TABLE2 TABLE2 ON TABLE2.ORDER_ID=A.ORDER_ID
INNER JOIN
DBO.TABLE3 TABLE3 ON TABLE3.QuoteId=TABLE2.QuoteId
INNER JOIN
DBO.Demographic DEMOGRAPHIC ON
DEMOGRAPHIC.DemographicId=TABLE3 .DemographicId
INNER JOIN
DBO.Agent E ON E.AgentId=DEMOGRAPHIC.AgentId
INNER JOIN
DBO.User USER ON USER.WebAcctID=AGENT.WebAcctId
INNER JOIN
DBO.Shopper SHOPPER ON SHOPPER.ShopperId=DEMOGRAPHIC.ShopperId
LEFT OUTER JOIN
DBO.Subsidy D ON D.demographicId=DEMOGRAPHIC.demographicId
LEFT OUTER JOIN
DBO.Employer EMPLOYER ON DEMOGRAPHIC.demographicId=EMPLOYER.demographicId
WHERE E.WritingTIN = 'XYZ' AND E.ParentTIN = 'XYZ'
AND DEMOGRAPHIC.State='OH'
AND A.Status IN ('X','Y','Z')
)AS ORDER_DETAILS
where ROW_NUMBER() OVER (ORDER BY CREATED_DATE DESC) BETWEEN ((1*50)-50)+1 AND 1*50 ORDER BY CREATED_DATE DESC
ERROR圖所示:無效的使用聚合函數或OLAP功能的.. SQLCODE = -120,SQLSTATE = 42903,DRIVER = 60年4月18日
當LEFT JOIN時,在ON子句中放置右側表條件以獲得真正的LEFT JOIN行爲。 (在WHERE中,你會得到常規的內部連接結果...) – jarlh
@jarlh問題不是由於加入..這是由於聚合函數的錯誤用法..我剛剛改變了查詢爲簡單起見。錯誤:集合函數或OLAP函數的使用無效.. SQLCODE = -120,SQLSTATE = 42903 – RVR
我的意見不是爲了解決問題,它只是爲了改善您的連接。 – jarlh