Beste tweakers,
Ik heb een tabel top2000[topyear,rank,band,song,songyear]. Een rij is bijvoorbeeld [2003,1,Queen,Bohemian Rhapsody,1975]. Er zit data in van 1999 t/m 2003. Nu wil ik alle nummers hebben die in 2003 in de lijst voorkwamen en in 2002 een hogere rank dan in 2003 en in 2001 een lagere rank dan in 2002 hadden. Ik heb dit:
Het resultaat is echter niet wat ik wil: ik krijg bijna alle nummers uit 2003 terug en kan geen patroon ontdekken om te achterhalen wat hij nou precies doet.
Iemand?
groeten,
Martin
Ik heb een tabel top2000[topyear,rank,band,song,songyear]. Een rij is bijvoorbeeld [2003,1,Queen,Bohemian Rhapsody,1975]. Er zit data in van 1999 t/m 2003. Nu wil ik alle nummers hebben die in 2003 in de lijst voorkwamen en in 2002 een hogere rank dan in 2003 en in 2001 een lagere rank dan in 2002 hadden. Ik heb dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| SELECT *
FROM top2000 as A
WHERE A.topyear = 2003
HAVING A.rank < all (
SELECT B.rank
FROM top2000 as B
WHERE A.band=B.band AND A.song=B.song AND B.topyear=2002
HAVING B.rank > all (
SELECT C.rank
FROM top2000 as C
WHERE A.band=C.band AND A.song=C.song AND C.topyear=2001
)
) |
Het resultaat is echter niet wat ik wil: ik krijg bijna alle nummers uit 2003 terug en kan geen patroon ontdekken om te achterhalen wat hij nou precies doet.
Iemand?
groeten,
Martin