SQL getrapte query

  • Onderwerp starter Onderwerp starter joses
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

joses

Nieuwe gebruiker
Lid geworden
3 sep 2008
Berichten
3
Ik heb een uitdaging waar ik niet uit kom.
Het volgende is het probleem.

Onderstaande tabel is de basis van het probleem, ik heb wat voorbeeld data ingevoerd.
Bekijk bijlage Afdeling.xls

Op deze tabel wil ik een view maken die de ontbrekende kostenplaatsen invuld.Deze view m0et dan voor de afdeling waar een kostenplaat ontbreekt kijken of er bij de Parent een een Kostenplaats is ingevoerd. Als dit zo is dan invullen bij de afdeling en zo niet bij de Parent van de Parent gaan kijken, enz.

oftewel in dit voorbeeld:

voor afdeling-id 9 kijken de bij de parent (afdeling-ID 6). Hier moet dus bij afdeling-ID 9 de kostenplaats 100111 worden ingevuld.

ander voorbeeld:

voor afdeling-id 11 kijken de bij de parent (afdeling-ID 7). Hier is geen Kostenplaats ingevoerd, dus kijken bij de parent van deze parent (afdeling-ID 5). Uiteindelijk moet dus bij afdeling-ID 11 de kostenplaats 100120 worden ingevuld.:shocked:

Ik hoop dat hetgeen ik wil duidelijk is, zo niet dan kunnen ws. niemand hier me helpen:D


Ik hoop natuurlijk dat iemand hier mij kan helpen met deze puzzel.
Wat al is gelukt (met hulp van een collega) is om e.e.a. voor 1 afdeling in te laten vullen, maar het gaat me nou net om de hele lijst.
De code voor 1 afdeling heb ik nu niet bij de hand omdat dit op me werk ligt, als het handig is plaats ik deze nog.

Alvast bedankt
 
Als je oracle gebruikt kan dit met een "connect by" constructie.

Code:
select kostenplaats from afdeling start with parent-id is null connect by prior afdeling-id = parent-id

Er zijn echter weinig dbms-en die deze erg handige "connect by" ondersteunen :(
 
het betreft idd een orscle database dus ik ga dit morgen eens proberen...

thnx zover
 
helaas ik heb de code vertaalt naar de juiste tabel en kolomnamen op de database zelf, maar het werkt niet.

Krijg de melding dat de sql statement niet juist is...
 
Kan je dit eens proberen..

Code:
select kostenplaats from afdeling connect by prior afdeling-id = parent-id start with parent-id is null

Als het niet lukt zal ik oracle XE weer eens moeten installeren... Het is alweer een tijdje geleden dat ik oracle heb gebruikt..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan