Hello.Rekursivt, hitta koppling
Sitter med ett för mig knepigt problem.
Jag håller på med en sida i ASP där det ska finnas tre st listboxar. En för bolag, en för bolagens projekt och en för projektets medlemmar. Projekten ska visas hierkaliskt eftersom ett projekt kan ha ett eller flera underprojekt som i sin tur kan ha underprojekt osv. Men den biten har jag koll på.
Officetabellen innehåller många bolag men jag skall endast lista dom som hör till det företag jag sitter på och dom får jag ut genom att kolla en viss typ av OfficeType. Det är ca 5 bolag som ingår i koncernen.
Tricket är att hämta ut det valda bolagets projekt för det finns ingen direkt koppling mellan bolaget som utför uppdraget och själva projektet. Utan kopplingen man har är mellan Person och Projekt. Dock så ingår ju Person alltid i ett eller flera Offices så där finns det en koppling. Grejen är bara hur jag ska få ut det i min SP. Jag visar hur min SP ser ut just nu:CREATE PROCEDURE spGetProjectTree
@OfficeID int,
@ParentProjectID int
AS
SELECT
DISTINCT(tblProject.ProjectID),
tblProject.ProjectName,
tblProject.ParentProjectID
FROM
tblOffice_Project
JOIN tblProject
ON tblProject.ProjectID = tblOffice_Project.ProjectID
WHERE
tblOffice_Project.OfficeID = @OfficeID AND
tblProject.ParentProjectID = @ParentProjectID
ORDER BY
tblProject.ProjectName
GO
Så det min SP gör just nu är att hämta projekten vars uppdragsgivare är det valda bolaget. Det blir alltså interna projekt. Jag vill få ut dessa interna projekt men den viktiga biten är att få ut dom projekt som bolaget har gjort åt andra bolag på andra företag. Så dom tabellerna som finns att leka med är:
tblOffice - OfficeID, OfficeName osv..
tblPerson - PersonID, Name osv..
tblPerson_Office - PersonID, OfficeID (Länk mellan person och office, kan vara många till många)
tblProject - ProjectID, ParentProjectID, ProjectName osv..
tblProject_Person - ProjectID, PersonID (Länk mellan person och projekt, kan vara många till många)
Någon som kan hjälpa mig med detta? Sitter helt fast..