Avatar billede rune_daub Nybegynder
13. januar 2006 - 12:37 Der er 3 kommentarer og
1 løsning

Dobbelt til enkelt linje i acces

Hej med jer
Jeg fik lukket og slukket for tråden http://www.eksperten.dk/spm/677356 lidt for tidligt. Lorentsnv fik hjulpet mig et stykke af vejen, men problemet er ikke helt løst.

Kort fortalt er her min problemstilling.
Jeg har 2 tabeller.
En ordretabel
En datotabel

Eftersom en ordre kan være
Send
Recieved
på forskellige tidspunkter, vil der være flere poster i datotabellen per post i ordretabellen.

Jeg har brug for at lave et sql udtræk der resulteterer i følgende poster
OrderNumber, SendDate, RecieveDate.

Jeg har fået lavet følgende i samarbejde med lorentsnv foreløbigt.:

SELECT Send.ErrorNumb, Send.MyDateTime AS SendDato, Rec.MyDateTime AS RecievedDato
FROM tblDate AS Send LEFT JOIN tblDate AS Rec ON Send.ErrorNumb = Rec.ErrorNumb
WHERE Send.Happening = 1
AND Rec.Happening = 7

Dette resulterede i, på trods af left join at min query kun fandt de poster, hvor der både var en Happening 1 og 7.

Dernæst prøvede vi kort at lave en:

SELECT Send.ErrorNumb, Send.MyDateTime AS SendDato, Rec.MyDateTime AS RecievedDato
FROM (SELECT * FROM tblDate WHERE Send.Happening = 1) Send
LEFT JOIN (SELECT * FROM tblDate WHERE Send.Happening = 5) Rec ON Send.ErrorNumb  =  Rec.ErrorNumb

Dette resulterede i at den trak alle poster med happening 1 og 7, som happening 1. Det var jo desværre heller ikke helt meningen.

Er der nogen der har mulighed for at finde en hurtig løsning på problemet?
pft.
Avatar billede lorentsnv Nybegynder
13. januar 2006 - 13:52 #1
Hej Rune

Prøv med følgende på SQL Server:
SELECT Send.ErrorNumb, Send.MyDateTime AS SendDato, Rec.MyDateTime AS RecievedDato
FROM (SELECT * FROM tblDate WHERE Happening = 1) Send
LEFT JOIN (SELECT * FROM tblDate WHERE Happening = 5) Rec ON Send.ErrorNumb  =  Rec.ErrorNumb

Eller følgende i Access:
SELECT Send.ErrorNumb, Send.MyDateTime AS SendDato, Rec.MyDateTime AS RecievedDato
FROM [SELECT * FROM tblDate WHERE Happening = 1]. AS Send LEFT JOIN [SELECT * FROM tblDate WHERE Happening = 5]. AS Rec ON Send.ErrorNumb = Rec.ErrorNumb;


Jeg har testet i Access, og det fungerer. I min tidligere SQL havde jeg sat Send.Happening = 5. Det skal kun være Happpening = 5.
Avatar billede rune_daub Nybegynder
13. januar 2006 - 13:58 #2
Kanon... der var den.
Tak for hjælpen.
Avatar billede lorentsnv Nybegynder
13. januar 2006 - 14:11 #3
Godt det fungerede! Beklager at jeg ikke opdaget dit svar på det andet spørgsmål.
Lav selv et svar på dette spørgsmål og tag poengerne tilbage. Jeg har allerede fået poeng på det andet spørgsmål, så derfor legger jeg ikke noget svar her.
Avatar billede rune_daub Nybegynder
13. januar 2006 - 14:13 #4
Lorentsnv tak for hjælpen ihvertfald. Nu bliver bosserne glade når jeg kan lave deres udtræk til dem :)
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