Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne][Access]Hierarchia z pomocniczą tabelą (skomplikowane) , jak skonstruować SELECT ?
korneljusz
post 9.09.2011, 10:53:57
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 9.09.2011

Ostrzeżenie: (0%)
-----


Witam wszystkich.
W bazie danych Access mam trzy tabele
1. Procesy
Kod
ID | Proces
--------------
1  | proc1
2  | proc2
3  | proc1.1
4  | proc3
5  | proc2.1
6  | proc1.2
7  | proc1.1.1


2. Temp
Kod
ID | ProcID | FatherID
---------------------------
1   | 3        | 1
2   | 6        | 1
3   | 5        | 2
4   | 7        | 3


3.Docs
Kod
ID | DocName
----------------
1   | Doc1        
2   | Doc2      
3   | Doc3  
4   | Doc4
5   | Doc5
6   | Doc6
7   | Doc7
8   | Doc8
9   | Doc9


Miedzy tabelami procesy i temp zachodzi zwiazek: proces, ktorego ID jest w ProcID nalezy do procesow, ktore ID sa w w FatherID.
Miedzy tabelami temp i docs: docs.ID = temp.ID
stad mozemy zbudowac drzewo:
Kod
proc1
      proc1.1
             proc1.1.1
      proc1.2
proc2
     proc2.1
proc3

Ale np proc1.1.1 moze znajdowac sie w calkiem innym miejscu w drzewie albo wystapic w nim kilka razy w innych miejscach, wiec w kazdym przypadku ma inna sciezke .

Moje pytanie:
Jak skonstruowac polecenie SELECT np jezeli chcemy sie dowiedziec czy procesowi proc1.1.1 jest przypisany jakis dokument z uwzglednieniem ze ten proces ma unikatowa sciezke.

Samo polecenie SELECT dla proc1.1.1 wyglada tak:
  1. SELECT Procesy.Proces, Docs.DocName
  2. FROM (Procesy INNER JOIN Temp ON Procesy.ID = Temp.ProcID) INNER JOIN Docs ON Temp.ID = Docs.ID
  3. WHERE (((Proces.Procesy)="proc1.1.1"));

ale jak uwzglednic, ze sciezka ojcow (fatherID) to w tym przypadku : dla ProcID = 7 FatherID = 3 -> dla ProcID = 3 FatherID = 1 ?
Dodam ze pracuje w Excelu, korzystam z metody ADO i dla wybranego procesu potrafie uzyskac sciezke ProcID -> FatherID (czyli liczba przejsc w gore bedzie znana)

Chyba stworzylem temat w zlym dziale, prosze moderatora o przerzucenie do dzialu baz danych , pozdrawiam

Ten post edytował Ociu 9.09.2011, 11:17:59
Powód edycji: [Ociu]: poprawiłem bbCode
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 05:34