[SQL] Lastige query naar dezelfde tabel

Pagina: 1
Acties:

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Topicstarter
Hoi,

Ben bezig met het uitvragen van gegevens uit de SQL Server 2000. en kwam op het volgende probleem:

Ik heb een query waarmee ik een count doe, en verder nog wat gegevens uit de database trek. De count komt uit een andere tabel (relatie) als de rest van de gegevens. Dit lukt wel allemaal. Alleen nu heeft de 1e tabel (gegevens) ook een relatie naar zichzelf. Nu is dat een nummer. Alleen wil ik niet het nummer hebben, maar de naam. Alleen krijg ik het niet voor elkaar

De volgende query werkt, alleen krijg ik dan het nummer terug en niet de naam.
SQL:
1
2
3
4
Select count(Relatie.relatieID) As Aantal_Relaties, gegevens.Naam, 
gegevens.Erfvan, gegevens.Path From Relatie Inner Join gegevens on Relatie.ID = 
gegevens.ID Where gegevens.VersieID = 1 Group By gegevens.Naam, 
gegevens.ErfVan, gegevens.Path


Hetgeen ik nu terug krijg is bijna wat ik nodig heb. Alleen vraag ik nu uit gegevens niet gegevens.naam uit, maar gewoon het getal in de database. Het (volgens mij) grote probleem is dat ik eigelijk twee keer hetzelfde veld uit wil vragen met alleen een andere waarde (namelijk het veld gegevens.Naam) De ene waarde is het record waar je over praat, en de ander is dus de Naam van degeen van wie ie erft.

(beetje duidelijk??)
De layout van de tabel gegevens:

ID(int) | Naam(nvarchar) | Path(nvarchar) | ErfVan(int) | Versie(int)
waarbij ErfVan dus een relatie heeft met ID

[ Voor 10% gewijzigd door Jaspertje op 28-10-2003 13:15 . Reden: layout ]


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

code:
1
Select a.id, a.naam, b.id, b.naam from mijntabel a, mijntabel b

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Chillz
  • Registratie: Augustus 2001
  • Laatst online: 17:47
COUNT is een berekening over het totaal van alle rijen in je tabel (dus 1 uitkomst)

de rest van je select is een weergave van de rijen in je tabel (meerdere uitkomsten)

deze kan SQL Server dus niet zo makkelijk samen in één result zetten
of geef ik nu te snel antwoord?

Leeg - Sinds 20180907


Verwijderd

Dat dacht ik ook te zien Chillz.
Zoals dusty liet zien moet je inderdaad twee aliassen aanmaken en dan naar dezelfde tabel linken. In de meeste andere talen moet je wel nog een where-clause toevoegen om een cartesisch product te voorkomen.

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Topicstarter
Heb de oplossing al gevonden jongens (en dames??)

Het was inderdaad was dusty aangaf als oplossing, en daarna moest ik zelf nog wat kloten met inner joins enzo.. maar het is wel gelukt..

SQL:
1
Select a.koloma As Naam, b.koloma As Naam2 From tabel a Inner Join tabel b On a.idkolom = B.anderekolomid


Alleen dan met goede namen :)

[ Voor 31% gewijzigd door Jaspertje op 29-10-2003 10:05 ]


Verwijderd

Top!
Pagina: 1