Hello User_GCQ4K,
Query is running perfect with out adding
ROW_NUMBER() OVER(PARTITION BY TRUNC(LB.CHANGEDATE) ORDER BY LB.CHANGEDATE ASC) AS Rownum,
when I add above line then it give me error.
Thanks for your time
Categories
- All Categories
- 162 Oracle Analytics News
- 29 Oracle Analytics Videos
- 14.8K Oracle Analytics Forums
- 5.7K Oracle Analytics Idea Labs
- Oracle Analytics User Groups
- 56 Oracle Analytics Trainings
- 13 Oracle Analytics Data Visualizations Challenge
- 4 Oracle Analytics Career
- 2 Oracle Analytics Industry
- Find Partners
- For Partners
Remove duplicate Row

I received below result from below Query
SELECT DISTINCT LB.CHANGEBY,
LB.CHANGEDATE,
LB.REVISIONNUM,
LB.MEMO,
LB.STATUS,
LB.CONTRACTNUM,
R1.DESCRIPTION,
R1.REVCOMMENTS,
R1.CNRCMSNUM,
R1.RENEWALDATE,
CASE
WHEN ((REVTYPE IS NULL OR REVTYPE<>' ') AND R1.REVISIONNUM=0) THEN 'NEW CONTRACT'
WHEN REVCOMMENTS LIKE '%CLOSE%' OR REVCOMMENTS LIKE '%CLOSE%' OR REVCOMMENTS LIKE '%CLOSE%' THEN 'CLOSED'
WHEN REVCOMMENTS LIKE '%HOLD%' THEN 'HOLD'
WHEN REVCOMMENTS LIKE '%UPDATE LABOUR%' OR REVCOMMENTS LIKE '%UPDATE LABOUR%' THEN 'UPDATE LABOUR'
WHEN REVCOMMENTS LIKE '%UPDATE EQUIPR%' OR REVCOMMENTS LIKE '%UPDATE EQUIP%' THEN 'UPDATE EQUIP'
WHEN REVCOMMENTS LIKE '%RATE EXTENSION%' OR REVCOMMENTS LIKE '%RATE EXTENSION%' THEN 'RATE EXTENSION'
WHEN REVCOMMENTS LIKE '%REVISE CONTRACT HEADER%' OR REVCOMMENTS LIKE '%REVISE CONTRACT HEADER%' THEN 'REVISE CONTRACT HEADER'
WHEN REVCOMMENTS LIKE '%NEW LABOUR RATE%' OR REVCOMMENTS LIKE '%NEW LABOUR RATE%' OR REVCOMMENTS LIKE '%NEW LABOURS RATE%' THEN 'NEW LABOUR RATES'
WHEN REVCOMMENTS LIKE '%NEW EQUIPMENT RATE%' OR REVCOMMENTS LIKE '%NEW EQUIPMENT%' OR REVCOMMENTS LIKE '%NEW EQUIPMENTS RATE%'THEN 'NEW EQUIPMENT RATES'
ELSE REVTYPE
END AS REVTYPE
FROM CONTRACTSTATUS_V LB
LEFT JOIN
(SELECT DISTINCT *
FROM SM_CONTRACT_V) R1 ON(R1.CONTRACTNUM=LB.CONTRACTNUM
AND R1.REVISIONNUM=LB.REVISIONNUM)
LEFT JOIN
(SELECT DISTINCT CONTRACTID,REVTYPE
FROM CNRLABORVIEWEXT_V) R2 ON(R2.CONTRACTID=R1.CONTRACTID)
WHERE LB.STATUS IN('WAPPR') AND
LB.CHANGEDATE >=TO_DATE('2021-01-01','YYYY-MM-DD') AND LB.CONTRACTNUM='470364' AND
LB.CHANGEBY IN('DYLANWH','JENNIEX','KIMP', 'ROSEMARW','ROWENAW','RUPALP','SHAYNEBR','YVONNEF') ORDER BY CONTRACTNUM, CNRCMSNUM, REVISIONNUM DESC
My desire result should be below -keep only one record when revisionnum and changedate is same (ignore changeby and different time and keep older record)
I did try to add
ROW_NUMBER() OVER(PARTITION BY TRUNC(LB.CHANGEDATE) ORDER BY LB.CHANGEDATE ASC) AS Rownum,
but it giving me error
" Message=ORA-00923: FROM keyword not found where expected"
Thanks lot
Best Answers
-
Where did you add that line?
Because it comes with a ' , ' at the end, but you should add one at the beginning if you are adding it right before the FROM.
You just have a syntax error in your query, look careful at your list of columns and fix the wrong ' , '.
1 -
Hi,
It's actually a lot simpler than what said above (so forget all the previous replies)...
You can't alias your
ROW_NUMBER() ... as rownum
, becauserownum
is a reserved word for columns name: https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ROWNUM-Pseudocolumn.html#GUID-2E40EC12-3FCF-4A4F-B5F2-6BC669021726Just call that column with ROW_NUMBER() something else and it will be good.
And yes, I agree the error message could be a lot more explicit :D
0
Answers
-
Hi @User_GCQ4K ,
That error is quite common, and is usually caused by a missing comma. I would check the code to confirm whether there is a comma after each column in the SELECT statement (with the exception of the last one)
0 -
Hello User_GCQ4K,
Query is running perfect with out adding
ROW_NUMBER() OVER(PARTITION BY TRUNC(LB.CHANGEDATE) ORDER BY LB.CHANGEDATE ASC) AS Rownum,
when I add above line then it give me error.
Thanks for your time
0 -
https://www.oracletutorial.com/oracle-analytic-functions/oracle-row_number/
syntax of the
ROW_NUMBER()
functionROW_NUMBER() OVER (
[query_partition_clause]
order_by_clause )
Example:
SELECT
ROW_NUMBER() OVER(
ORDER BY list_price DESC
) row_num,
product_name,
list_price
FROM
products;
0 -
Thanks lot Gianni Ceresa
0 -
thanks lots Gianni Ceresa
0