If this is your first visit, be sure to check out the FAQ by clicking the link above.
You may have to register before you can post: click the register link above to proceed.
To start viewing messages, select the forum that you want to visit from the selection below.
Location: The extremely Royal borough of Kensington, London
Posts: 778
select *
from tableA ta
where pres_num = (select max(presnum) from tableA where territory_num = ta.territory_num)
__________________
Bessie Braddock: Winston, you are drunk!
Churchill: And Madam, you are ugly. And tomorrow, I'll be sober, and you will still be ugly.
The problem is the the max(pres_num) of one territory can be the pres_num in another terriotory, and the pres_num might not be the max(pres_num) in that territory.
I hope that made sense.
Thanks so much for helping!
Location: The extremely Royal borough of Kensington, London
Posts: 778
Consider the following example.
Code:
SQL> select * from a;
NAME DEPT AMT
---------- ---------- ----------
EMPA DEPTA 80000
EMPB DEPTA 60000
EMPC DEPTB 80000
EMPD DEPTB 60000
SQL> select dept, max(amt)
2 from a
3 group by dept;
DEPT MAX(AMT)
---------- ----------
DEPTA 80000
DEPTB 80000
SQL> select *
2 from a a1
3 where a1.amt = (select max(amt) from a where dept = a1.dept);
NAME DEPT AMT
---------- ---------- ----------
EMPA DEPTA 80000
EMPC DEPTB 80000
SQL> select a1.name, V.*
2 from a a1
3 INNER JOIN
4 (select dept, max(amt) MAX_AMT
5 from a
6 group by dept) V ON
7 V.dept = a1.dept AND
8 V.MAX_AMT = a1.amt;
NAME DEPT MAX_AMT
---------- ---------- ----------
EMPA DEPTA 80000
EMPC DEPTB 80000
__________________
Bessie Braddock: Winston, you are drunk!
Churchill: And Madam, you are ugly. And tomorrow, I'll be sober, and you will still be ugly.