Avatar billede soerens Nybegynder
15. oktober 2002 - 12:33 Der er 6 kommentarer og
2 løsninger

Hente data fra 1 tabel flere gange via et view

Jeg har brug for lidt hjælp med at hive nogle data ud af en database!

OPSÆTNING
---------
tblRMA
ID
RMAName
CreatedByID
ChangedByID
ClosedByID

tblUser
ID
Initials
Fullname

Felterne CreatedByID, ChangedByID og ClosedByID peger på tblUser.ID, dog må de godt være lig med null.

PROBLEM
-------
Jeg vil godt have konstrueret et view, der returnerer følgende felter:

vwRMA
ID
RMAName
CreatedBy_ID
CreatedBy_Initials
CreatedBy_Fullname
ChangedBy_ID
ChangedBy_Initials
ChangedBy_Fullname
ClosedBy_ID
ClosedBy_Initials
ClosedBy_Fullname

Det BEHØVER ikke være via et view. Alt er tilladt, f.eks. Stored Procedures. Resultatet skal bruges i en række ASP-sider. Databasen er en MS SQL 2000.

Mvh.
SoerenS
Avatar billede soerens Nybegynder
15. oktober 2002 - 12:35 #1
...tblRMA, tblUser og vwRMA er selvfølgelig navne på tabellerne/viewsene, og ikke felter!
Avatar billede pierrehusted Nybegynder
15. oktober 2002 - 12:48 #2
Den her tror jeg virker

Select tblRMA.ID, tblRMA.RMAName,
  tblRMA.CreatedByID as CreatedBy_ID, U1.initials as CreatedBy_Initials, U1.FullName as CreatedBy_Fullname,
  tblRMA.CreatedByID as CreatedBy_ID, U2.initials as CreatedBy_Initials, U2.FullName as CreatedBy_Fullname,
  tblRMA.CreatedByID as CreatedBy_ID, U3.initials as CreatedBy_Initials, U3.FullName as CreatedBy_Fullname
From tblRMA
    inner join tblUser as U1 on tblRMA.CreatedByID = U1.id
    inner join tblUser as U2 on tblRMA.CreatedByID = U2.id
    inner join tblUser as U3 on tblRMA.CreatedByID = U3.id
Avatar billede pierrehusted Nybegynder
15. oktober 2002 - 12:50 #3
Øjeblik...  mangler noget...  :-(
Avatar billede pierrehusted Nybegynder
15. oktober 2002 - 12:52 #4
Sådan her...


Select tblRMA.ID, tblRMA.RMAName,
  tblRMA.CreatedByID, U1.initials as CreatedBy_Initials, U1.FullName as CreatedBy_Fullname,
  tblRMA.ChangedByID, U2.initials as ChangedBy_Initials, U2.FullName as ChangedBy_Fullname,
  tblRMA.ClosedByID, U3.initials as ClosedBy_Initials, U3.FullName as ClodsedBy_Fullname
From tblRMA
    inner join tblUser as U1 on tblRMA.CreatedByID = U1.id
    inner join tblUser as U2 on tblRMA.ChangedByID = U2.id
    inner join tblUser as U3 on tblRMA.ClosedByID = U3.id
Avatar billede the_bma_man Nybegynder
15. oktober 2002 - 12:59 #5
Det gør den!
Avatar billede proaccess Nybegynder
15. oktober 2002 - 13:02 #6
Det skal vel være LEFT JOIN...

Select tblRMA.ID, tblRMA.RMAName,
  tblRMA.CreatedByID, U1.initials as CreatedBy_Initials, U1.FullName as CreatedBy_Fullname,
  tblRMA.ChangedByID, U2.initials as ChangedBy_Initials, U2.FullName as ChangedBy_Fullname,
  tblRMA.ClosedByID, U3.initials as ClosedBy_Initials, U3.FullName as ClodsedBy_Fullname
From tblRMA
    left join tblUser as U1 on tblRMA.CreatedByID = U1.id
    left join tblUser as U2 on tblRMA.ChangedByID = U2.id
    left join tblUser as U3 on tblRMA.ClosedByID = U3.id
Avatar billede soerens Nybegynder
15. oktober 2002 - 13:07 #7
Perfekt!! Taaaaaak!

Håber ikke det gør noget at jeg har delt pointene lidt ud, med mest til proaccess fordi han kom med den 100% rigtige løsning. Ellers, så sig til.

Mvh.
SoerenS
Avatar billede pierrehusted Nybegynder
15. oktober 2002 - 13:17 #8
Ja, det skal det da (være LEFT JOIN) når der skal kunne være NULL værdier.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester