Avatar billede dennisjuul Nybegynder
28. april 2005 - 10:46 Der er 6 kommentarer og
1 løsning

Hjælp til sql-streng med max og substring

Hejsa!!

Jeg vil gerne høre, om der er en der kan hjælpe mig med at opbygge en sql-streng, til at udtrække flg. data fra en given tabel:

kolonner:
id (PK), filnavn, beskrivelse (måske flere senere)

Filnavnene er med fast længde på 24 karakterer samt fil-efternavn.

Karakter 22-24 er et versionsnummer, og jeg vil kun have vist den fil med det nyeste versionsnummer, hvis der er flere ens filer.

Håber nogen kan give et bud på en sådan sql-streng, jeg har forsøgt med 'max(id)' og 'group by substring(filnavn,0,22)' osv. men så kan jeg kun få id'et og ikke filnavn, beskrivelse og evt. andre kolonner med.

dennisJuul
Avatar billede jtbroad Nybegynder
29. april 2005 - 11:11 #1
Select * from [tabelnavn] where (select substring(filnavn,22,24)) = (select max(substring(filnavn,22,24)))

Måske?
Avatar billede dennisjuul Nybegynder
29. april 2005 - 13:21 #2
Næ, den virker altså ikke... :-(
Avatar billede jtbroad Nybegynder
29. april 2005 - 13:43 #3
hvad siger den når du prøver?
det vil måske være nødvendig at cast eller convertere strengen til et tal før du kalder max funktionen
Can du lave en select der viser den del af filnavnet du er interesseret i?
Avatar billede dennisjuul Nybegynder
29. april 2005 - 13:47 #4
Den skriver:

An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference.
Avatar billede busschou Praktikant
29. april 2005 - 13:51 #5
Et foreslag hvis du ikke skal lave for meget om i din db nu du selv siger der måske kommer flere kolonner senere...ville jo så være at lave en "version" kolonne
Avatar billede nop Nybegynder
11. maj 2005 - 15:37 #6
select * from [tab] where subString(filNavn,22,24)=(select max(subString(ny.filNavn,22,24) from [tab] as ny)
Avatar billede nop Nybegynder
11. maj 2005 - 15:39 #7
Manglede lige en parentes.

select * from [tab] where subString(filNavn,22,24)=(select max(subString(ny.filNavn,22,24)) from [tab] as ny)
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