[SQL] Tabel joinen met zichzelf

Pagina: 1
Acties:
  • 115 views sinds 30-01-2008
  • Reageer

  • M_V
  • Registratie: Maart 2001
  • Laatst online: 30-11 11:57
Ik moet regelmatig een tabel joinen met "zichzelf". Hiermee bedoel ik dat ik bijvoorbeeld de verkopen van jaar=1994 moet joinen met de verkopen van 1996.

Je hebt dus deze lijst:
Jaar ---- Verkopen
1994 -- 123
1995 --- 32423
1997 -- 631
1996 --- 23432
2001 --- 456

Ik wil deze lijst dus joinen tot:
Basisjaar --- Verkopen basisjaar ---- verkopen jaar erop
1994 --- 123 ---- 32423

Als je dit met de gebruikelijke joinmethode doet, krijg je een conflict qua namen (2 kolommen met de naam "verkopen").

Normaal los ik dit op door een NIEUWE tijdelijke tabel te maken, de namen allemaal te veranderen in verkopenplus2 oid en dan die twee tabellen te joinen.

Dit moet toch handiger kunnen.... heeft iemand een idee?

  • assembler
  • Registratie: Mei 2004
  • Niet online
select verkopen AS verkopenplus2?

of zit ik nou te simpel te denken

  • BHR
  • Registratie: Februari 2002
  • Laatst online: 01-12 19:42

BHR

Speciaal hiervoor heb je tabel aliassen.
SQL:
1
2
3
select a.kolom1, b.kolom1 
from mijn_tabel as a, mijn_tabel as b 
where a.kolom2 = b.kolom2


Je moet dan dus al je kolommen prefixen

[ Voor 0% gewijzigd door BHR op 03-02-2007 22:59 . Reden: spuit11 ]

No amount of key presses will shut off the Random Bug Generator


  • M_V
  • Registratie: Maart 2001
  • Laatst online: 30-11 11:57
De optie die assembler aandraagt is inderdaad mogelijk, maar komt ongeveer overeen met wat ik altijd doe

De methode van BHR lukt alleen met een query, maar niet als je het weer wil terugschrijven in een nieuwe tabel, dan gaat hij huilen dat de namen hetzelfde zijn.

Iemand anders?

  • Batsies
  • Registratie: Mei 2002
  • Laatst online: 27-01-2022

Batsies

E-Developing

Zal het zo niet werken dan:
code:
1
2
3
select a.kolom1 as bla1, b.kolom1  as bla2
from mijn_tabel as a, mijn_tabel as b  
where a.kolom2 = b.kolom2

E-Developing


  • reddevil
  • Registratie: Februari 2001
  • Laatst online: 06-10 14:25
Rudy_V schreef op maandag 05 februari 2007 @ 22:31:
De optie die assembler aandraagt is inderdaad mogelijk, maar komt ongeveer overeen met wat ik altijd doe

De methode van BHR lukt alleen met een query, maar niet als je het weer wil terugschrijven in een nieuwe tabel, dan gaat hij huilen dat de namen hetzelfde zijn.

Iemand anders?
als je blijft prefixen dan gaat het gewoon werken hoor, geef je SQL is waarmee je het probeert dan.
Pagina: 1