Avatar billede naked2000 Nybegynder
09. august 2003 - 22:01 Der er 6 kommentarer og
1 løsning

FirstOf funktion i MSSQL

Jeg mangler en tilsvarende funktion som i MS ACCESS hedder FirstOf([attribut]).
f.eks:

Struktur:
tabel1:
tb1_ID|userID

tabel2:
tb2_ID|artID|userID

Data
tabel1:
1|111

tabel2:
1|64|111
2|65|111

I MS ACCES ville man kunne gøre følgende:

SELECT tabel1.userID, firstOf(tabel2.artID)
FROM tabel1 JOIN tabel2 ON tabel1.userID = tabel2.userID

Det ville retunere:
111|64

og IKKE
111|64
111|65

Hvis det var uden firstOf

altså bare den første den støder på.

Håber i forstår hvad jeg mener.
Avatar billede naked2000 Nybegynder
09. august 2003 - 22:03 #1
Undskyld det skulle selvfølgelig være

SELECT tabel1.userID, firstOf(tabel2.artID)
FROM tabel1 JOIN tabel2 ON tabel1.userID = tabel2.userID
GROUP BY tabel1.userID
Avatar billede terry Ekspert
09. august 2003 - 22:14 #2
I think your going to have to use a sub select!
(NOT TESTED)
SELECT tabel1.userID, (SELECT TOP 1 T2.artID FROM tabel2 T2 ORDER BY T2.SomeField ) AS firstOfArtID FROM tabel1 JOIN tabel2 ON tabel1.userID = tabel2.userID
GROUP BY tabel1.userID
Avatar billede terry Ekspert
09. august 2003 - 22:21 #3
I very much doubt that your Access SQL is correct!
Avatar billede terry Ekspert
09. august 2003 - 22:25 #4
I am not quite sure what your trying to do!
This is the Access SQL I would us eto get the (FirstOf) artID

SELECT tabel1.UserID, First(tabel2.artID) AS FirstOfartID
FROM tabel1 INNER JOIN tabel2 ON tabel1.UserID = tabel2.UserID
GROUP BY tabel1.UserID;
Avatar billede terry Ekspert
09. august 2003 - 22:40 #5
This gives you a resely you should be able to use!

SELECT    dbo.tabel1.UserID,
                          (SELECT    TOP 1 T2.artID
                            FROM          dbo.tabel2 T2
                            WHERE      t2.UserID = tabel1.UserID) AS FirstOfUserID
FROM        dbo.tabel1 INNER JOIN
                      dbo.tabel2 ON dbo.tabel1.UserID = dbo.tabel2.UserID
GROUP BY dbo.tabel1.UserID
Avatar billede naked2000 Nybegynder
09. august 2003 - 23:29 #6
Du har ret. Min access SQL var forkert.

Din løsning ser ud til at virke fuldstændig som det ment.

Tak for hjælpen...
Avatar billede terry Ekspert
10. august 2003 - 10:04 #7
selv tak :o)
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