Toon posts:

[MySQL 4.1.2]

Pagina: 1
Acties:
  • 34 views sinds 30-01-2008

Verwijderd

Topicstarter
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:

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

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Wat zit je met having te frutselen?
Having is om groepen uit te sluiten, dus altijd icm. group by.

Who is John Galt?


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Wil je dan niet gewoon de records hebben waar jaar van max(rank) is 2002 en die in 2003 voorkomen?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Ga anders even lekker in je vorige topic verder :z

[rml][ MySQL 4.1.2] Aantal rows tellen[/rml]

Professionele website nodig?


Dit topic is gesloten.