Avatar billede skov_p Praktikant
13. januar 2011 - 21:33 Der er 8 kommentarer og
1 løsning

SELECT T1.*, T2.* ... JOIN... TOP 1 T2.C2

Måske et klasssisk spm.

Jeg har to tabeller.

T2 indeholder flere match til hver T1 record
To forskellige T1 records kan hver matche de samme x records i T2

Jeg vil have alle records fra T1 og de skal hver joines med en matchene record fra T2.

Recorden fra T2 skal være den der har det højeste RecID

Giver det mening...
Avatar billede Syska Mester
13. januar 2011 - 22:44 #1
SELECT * FROM T2 t2
INNER JOIN
(SELECT MAX(RecID) AS ID FROM T2 GROUP BY dit_parent_id) t1 on t1.ID = t2.ID

Overstående er starten på løsnigen.
Avatar billede Syska Mester
13. januar 2011 - 23:13 #2
WITH cte(RName, CName, RowNum)
AS
    (SELECT R.Name AS RName, C.Name AS CName, ROW_NUMBER() OVER(PARTITION BY R.RegionId ORDER BY CID DESC) AS [RowNum] FROM Regions R
    INNER JOIN Countries C ON C.RegionId = R.RegionID
    )
SELECT * from cte where RowNum = 1

Noget ala overstående ... tilpas selv.

mvh
Avatar billede Syska Mester
13. januar 2011 - 23:14 #3
vælger de lange med højeste CID ... sammen med deres Region Name.

mvh
Avatar billede skov_p Praktikant
13. januar 2011 - 23:20 #4
Tak...

Tror ikke jeg får succes på denne tid af dagen.
Giver det et skud i morgen.
Avatar billede Syska Mester
14. januar 2011 - 00:23 #5
super ... du giver bare en melding tilbage.

mvh
Avatar billede skov_p Praktikant
14. januar 2011 - 19:48 #6
Det havde jeg ikke så meget succes med, men ellers tak.

Jeg valgte den dovne løsning.
2 step i LINQ klarede opgaven.

Smid et svar
Avatar billede Syska Mester
14. januar 2011 - 23:09 #7
Svar.

Ja, overstående kan du ikke lave effektivt i LINQ, men det burde virke.

Hvad er det som ikke virker ?

Du kan jo også smide en dynamic sql efter din DB Context.

Jeg ville selv gå efter linq løsningen hvis performance ikke betyder noget.

mvh
Avatar billede skov_p Praktikant
15. januar 2011 - 11:13 #8
Jeg har aldrig brugt WITH, kender ikke Partition By eller funktionen OVER

Det gør bl.a. at jeg ikke helt kan gennemskue om Region er T1 eller T2
Avatar billede Syska Mester
15. januar 2011 - 13:42 #9
Region med mange Countries

Så Region må være din T1 og Countries din T2.
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