26. august 2004 - 07:37Der er
6 kommentarer og 1 løsning
Vis Max(Dato) og andre kolonner
Jeg har et lille SQL problem.
Jeg ønsker at udskrive den største dato fra en tabel, men også de andre værdier for den record, hvor datoen er størst. Jeg forsøgte med: "SELECT Max(Date), Name, Description FROM tblUpdateTypes WHERE TypeID = 1" Jeg kan dog kun få lov til at udskrive Max(Date) - så snart jeg vil have flere felter med i mit output fejler den.
Hvordan løser jeg dette lille problem? Max(Date) er jo relateret til en bestemt record - det er ikke det samme som at sige Count(*) eller andre af den slags kommandoer, vel?
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Slettet bruger
26. august 2004 - 07:43#1
Vil "SELECT Top 1 (Date, Name, Description) FROM tblUpdateTypes WHERE TypeID = 1 ORDER By Date DESC" ikke kunne bruges?
(Syntax for TOP er måske forkert (er lidt rusten), men alternativt kan du bare kigge på den første record, og lade være med at loope videre gennem resultsættet.)
Prøv ect også (skud i tågen - kan ikke lige teste det lige nu): "SELECT Max(Date) as MaxDate, Name, Description FROM tblUpdateTypes WHERE TypeID = 1"
Synes godt om
Slettet bruger
26. august 2004 - 07:45#2
Dvs. i stedet for at kalde ResultSet("Date") skal du kalde ResultSet("MaxDate") - glemte jeg lige at få med :)
Tak for superhurtigt svar - Jeg har prøvet flere gange med mulighed 2, men får følgende fejl: Column 'tblUpdates.Name' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Prøver lige mulighed 1 ;o)
Synes godt om
Slettet bruger
26. august 2004 - 08:02#4
Prøv lige engang at: "SELECT Max(Date) as MaxDate, Name, Description FROM tblUpdateTypes WHERE TypeID = 1 GROUP BY MaxDate"
Det gjorde det ikke, desværre - det den løsning har jeg selv rodet med i lang tid - både med og uden Group By... Endvidere er der den benefit ved Top 1 (som jeg ikke kendte til i forvejen, tak), at hvis hvis ingen records findes (rs.EOF eller rs.BOF) kan den fanges i Top 1 og man kan skrive en "fejlmeddelelse" til brugeren. Det kan man ikke med Max() - den returnerer åbenbart et eller andet - selv hvis der ikke er nogen records?
Synes godt om
Ny brugerNybegynder
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.