Avatar billede kasperh Nybegynder
02. marts 2005 - 09:32 Der er 24 kommentarer og
2 løsninger

Nyeste record

Hej. Jeg har dette query, som giver mig en liste med brugere fra userlog og en dato .problemet med denne dato er at jeg får den første MySQL finder og det er som regel den ældste.
Jeg vil gerne have den nyeste dato.

SELECT l.LogDate,u.UserName
FROM userlog u
LEFT JOIN log l ON l.LogUserID = u.UserID
WHERE u.UserName <> ''
GROUP  BY u.UserID, u.UserName
ORDER  BY l.LogDate DESC

Kasper
Avatar billede arne_v Ekspert
02. marts 2005 - 09:35 #1
SELECT MAX(l.LogDate),u.UserID,u.UserName
FROM userlog u
LEFT JOIN log l ON l.LogUserID = u.UserID
WHERE u.UserName <> ''
GROUP  BY u.UserID, u.UserName
ORDER  BY l.LogDate DESC

måske
Avatar billede detox Nybegynder
02. marts 2005 - 09:40 #2
Og skal du kun bruge 1 række kan du sætte: 'LIMIT 1' på
Avatar billede kasperh Nybegynder
02. marts 2005 - 09:50 #3
Desværre. Nu får jeg også vist den ældste LogDate, men stadig ikke den nyeste record. :]
Avatar billede detox Nybegynder
02. marts 2005 - 09:52 #4
Hvilket format har 'LogDate'?
Avatar billede kasperh Nybegynder
02. marts 2005 - 09:57 #5
Timestamp
Avatar billede detox Nybegynder
02. marts 2005 - 10:24 #6
Virker pudsigt, forespørgslen ser ellers ud til at være ok. Hvordan ser den helt nøjagtigt ud nu?
Avatar billede kasperh Nybegynder
02. marts 2005 - 10:43 #7
Nu søger jeg i noget andet data, men samme princip:
SELECT MAX(HistoryDate),b.CVRNR,b.NAVN_1,b.NAVN_2,b.NAVN_3,h.HistoryStatus,h.HistoryDate
FROM dataTest b
LEFT JOIN History h ON b.CVRNR = h.HistoryCVRNR
GROUP BY b.CVRNR,b.NAVN_1,b.NAVN_2,b.NAVN_3
ORDER BY HistoryDate
Avatar billede detox Nybegynder
02. marts 2005 - 10:46 #8
Men her mangler du jo: DESC (default er: ASC):

ORDER BY HistoryDate DESC
Avatar billede kasperh Nybegynder
02. marts 2005 - 11:07 #9
Det var mig der lige havde testet den, beklager. Den er der stadig ikke hvis jeg fjerner den.
Avatar billede kasperh Nybegynder
02. marts 2005 - 11:19 #10
Vrøvl. Tilføjer den.
Avatar billede detox Nybegynder
02. marts 2005 - 11:21 #11
Vil det sige at der ikke er forskel på om du bruger DESC eller ej?
Avatar billede kasperh Nybegynder
02. marts 2005 - 11:25 #12
Ja.
Avatar billede kasperh Nybegynder
02. marts 2005 - 11:27 #13
Den forskel der er, er at de selvfølgelig bliver sorteret efter MAX(), men jeg vil jo have den nyeste record med fra den tabel jeg joiner. Her er det History, men det er den samme jeg får med hver gang.
Avatar billede kasperh Nybegynder
02. marts 2005 - 11:34 #14
Jeg har 2 tabeller:
1. dataTest med felterne CVRNR, NAVN_1, NAVN_2, NAVN_3
2. History med felterne HistoryCVRNR, HistoryStatus, HistoryDate,

Data kunne være som følgende:
dataTest:
12345678, Firmanavn,'',''

History:
12345678,'Åben',20050201120000
12345678,'Rettelse',20050215120000
12345678,'Lukket',20050301120000

Her vil jeg gerne have vist data fra dataTest med den sidste record joinet, men når jeg gør det får jeg den øverste der melder Åben. Jeg vil have den skal melde Lukket.
Avatar billede detox Nybegynder
02. marts 2005 - 12:35 #15
Hvis du bare vil have den nyeste har du ikke brug for gruppering:

SELECT HistoryDate, b.CVRNR, b.NAVN_1, b.NAVN_2, b.NAVN_3, h.HistoryStatus
FROM dataTest b
LEFT JOIN History h ON b.CVRNR = h.HistoryCVRNR
ORDER BY HistoryDate DESC
LIMIT 1
Avatar billede detox Nybegynder
02. marts 2005 - 12:38 #16
Eller hvis det skal være et bestemt CVRNR:

SELECT HistoryDate,b.CVRNR,b.NAVN_1,b.NAVN_2,b.NAVN_3,h.HistoryStatus
FROM dataTest b
LEFT JOIN History h ON b.CVRNR = h.HistoryCVRNR
WHERE b.CVRNR = '12345678'
ORDER BY HistoryDate DESC LIMIT 1
Avatar billede kasperh Nybegynder
02. marts 2005 - 12:42 #17
Jo. for der ligger flere History pr. CVRNR i History. JEg vil kune have den nyeste af dem, ikke de gamle. :]
Avatar billede detox Nybegynder
02. marts 2005 - 12:49 #18
Du skulle jo osse gerne få den nyeste på denne måde.
Avatar billede kasperh Nybegynder
02. marts 2005 - 12:53 #19
Men jeg får jo samme firma flere gange med hver sin History record i. Jeg vil kun have hver firma én gang med den nyeste History joined.
Avatar billede kasperh Nybegynder
02. marts 2005 - 13:50 #20
Gav du op? :]
Avatar billede detox Nybegynder
02. marts 2005 - 14:23 #21
Ja, jeg er ikke sikker på hvordan du skal opnå det du ønsker.
Avatar billede kasperh Nybegynder
02. marts 2005 - 14:25 #22
Hmm.. Så må jeg vel kode mig ud af det.. :((
Avatar billede kasperh Nybegynder
02. marts 2005 - 20:42 #23
Æv.
Avatar billede kasperh Nybegynder
02. marts 2005 - 20:43 #24
Kan du ikke smide et svar?, så får du nogle point for at have hjulpet..
Avatar billede detox Nybegynder
02. marts 2005 - 22:26 #25
Nej, tag du dem selv. Du fik det jo ikke løst.
Avatar billede kasperh Nybegynder
02. marts 2005 - 22:29 #26
Ok. Tak.
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