23. september 2008 - 16:32Der er
8 kommentarer og 1 løsning
Sorter data på baggrund af datofelt fra 2 tabeller
Jeg har 2 tabeller der bægge har et felt navngivet CreateDato. Er det muligt at lave et sql udtræk der trækker de 30 nyeste poster ud på baggrund af CreateDato feltet.
Jeg kan kun finde en løsning til at trække posterne ud på baggrund af en sortering fra den ene tabel: SELECT Top 30 * FROM Tabel1, Tabel2 Where Tabel1.ID = Tabel2.Tabel1ID Order By Tabel1.CreateDato Desc
Eksempel på hvordan dataen skal trækkes ud:
Tabel 1: ID 1, CreateDato 11-09-2008 ID 2, CreateDato 20-09-2008 ID 3, CreateDato 23-09-2008
Det ønsker jeg ikke. Jeg ønsker kun værdier fra tabel 1 men jeg ønsker at de også bliver sorteret fra tabel 2. Som jeg forstår dit eksempel vil jeg få følgende: ID 3 Tabel1ID 1 (Dvs udtrækket fra tabel 2) ID 2 ID 1
Tabel 1: (Indeholder information om køb af computer) ID: 1, Navn: Computer 1, CreateDato 11-09-2008 ID: 2, Navn: Computer 2, CreateDato 20-09-2008 ID: 3, Navn: Computer 3, CreateDato 23-09-2008
Tabel 2: (Indeholder information om opgradering af computer) ID 1, Tabel1ID 1, CreateDato 22-09-2008
Obs. tabel 1 indeholder også en række felter som ikke findes i tabel 2 og ligeledes med tabel 2.
Nu vil jeg så gerne have en liste med følgende information: Tabel1.ID, Tabel1.Navn
Og listen skal sorter computerne efter nyeste indkøbte og samtidig efter seneste opgraderet. Dvs. at jeg skal have følgende liste: Computer 3 (Dato: 23-09-2008) Computer 1 (Dato: 22-09-2008) Computer 2 (Dato: 20-09-2008)
Dette er ikke testet, men noget i denne dur bør løse dit problem :-)
select t1.ID, t1.Navn, ISNULL(t2.CreateDato, t1.CreateDato) CreateDato from Tabel1 t1 left outer join Tabel2 t2 on t1.ID = t2.Tabel1ID order by ISNULL(t2.CreateDato, t1.CreateDato)
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.