Avatar billede hundevennen Nybegynder
29. maj 2007 - 09:50 Der er 8 kommentarer og
1 løsning

Hjælp til SELECT sætning

jeg får en syntaxfejl på denne sætning:
"select * FROM " & tabel_navn & " where KLOKKEN < (select max(KLOKKEN) AND (select min(ID) from " & tabel_navn & ")order by DATO asc, KLOKKEN asc"
Avatar billede 0xffff Nybegynder
29. maj 2007 - 10:01 #1
du skal have en group by clause på

"select * FROM " & tabel_navn & " where KLOKKEN <
(select max(KLOKKEN) AND (select min(ID) from " & tabel_navn & ")
group by [dine feltnavne som du vil gruppere på, evt. i denne query klokken og id]
order by DATO asc, KLOKKEN asc"
Avatar billede hundevennen Nybegynder
29. maj 2007 - 10:51 #2
0xffff - det jeg forsøger er at hente laveste id ud til en overskrift og derefter resten af posterne ud i en tabel
Avatar billede 0xffff Nybegynder
29. maj 2007 - 12:48 #3
jeps, men du kan ikke lave en summering uden en group by, med mindre du har summering på alle dine felter.

dvs. du skal enten:

select id FROM " & tabel_navn & " where KLOKKEN <
(select max(KLOKKEN) AND (select min(ID) from " & tabel_navn & ")
order by DATO asc, KLOKKEN asc"

eller

select *[alle felter] FROM " & tabel_navn & " where KLOKKEN <
(select max(KLOKKEN) AND (select min(ID) from " & tabel_navn & ")
group by [dine feltnavne som du vil gruppere på, evt. i denne query klokken og id]
order by DATO asc, KLOKKEN asc"

en order by uden group by virker ikke hvis der ikke er summering på felterne.
Avatar billede hundevennen Nybegynder
29. maj 2007 - 13:39 #4
man kan ikke group by når man selecter med *
Avatar billede 0xffff Nybegynder
29. maj 2007 - 14:27 #5
Nu ved jeg ikke hvilken databaseplatform du bruger, men jeg har lige lavet test queries på MySQL, MSSQL og Access hvor jeg kunne lave en group by hvor man havde select *. Men du skal således have gruppering på alle felterne, hvorfor denne løsning ikke er at foretrække. Men den *kan* lade sig gøre.

Pga. grupperingsproblemet skrev jeg denne query til dig i sidste post:

select id FROM " & tabel_navn & " where KLOKKEN <
(select max(KLOKKEN) AND (select min(ID) from " & tabel_navn & ")
order by DATO asc, KLOKKEN asc"

da du så trækker id ud samtidig med at du slipper for gruppering.
Avatar billede hundevennen Nybegynder
29. maj 2007 - 14:39 #6
hvordan vil du så skrive laveste id i første række i en tabel og derefter resten sorteret efter dato og klokken?
Avatar billede 0xffff Nybegynder
29. maj 2007 - 14:51 #7
select min(id), klokken from tabel_navn
group by id asc, dato asc, klokken asc

eventuelt med en where statement.
Avatar billede hundevennen Nybegynder
24. juni 2007 - 12:14 #8
mangler et svar
Avatar billede hundevennen Nybegynder
15. november 2007 - 08:43 #9
lukker
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
Kurser inden for grundlæggende programmering

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