Hello everyone,

I am fairly new to oracle and SQL and I am having a little trouble figuring out how to accomplish a task.

I have three columns from a table, we will call them 'a', 'b', and 'id'. I first want to order by 'id' and then query the ordered data with the following condition.

I want to add the value at column 'a' to the value at column 'b' and then check and see if that sum is equal to the next value in column 'b'.

If that is not possible, I may also be able to add up column 'a' and column 'b' (take the sum of each column, grouped by 'id') and then subtract the last value in column 'a' grouped to each id from column 'a' and then compare the value of column a (sum(a) - last_value(a), with respect to the id from the 'id' column) with the sum of column 'b' (sum(b))

Any help would be appreciated!

Thanks,

Nick

Recommended Answers

All 2 Replies

This doesn't appear to be a task that can be performed with a single SQL if that was what you were looking for. Even if it is possible (because I'm not very good at SQL myself), the query itself is so dependent on the results that having a stored procedure and using a cursor would be a good choice.

Thank you for your help. Below is what I eventually came up with as a solution.

SELECT UNIQUE id
FROM table1 a
LEFT JOIN table1 b
ON a.value1 + a.prev_value <> b.prev_value
WHERE to_number(b.amd_no) = (to_number(a.amd_no) + 1)
AND a.id = b.id;

Thanks,

Nick

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.