Avatar billede snie97 Nybegynder
01. juli 2004 - 13:53 Der er 12 kommentarer og
1 løsning

Bøvl med Sql-sætning

Er der en der lige kan føre mig på rette spor med denne query?

Set rsOnUs = Con.Execute("SELECT empId, sese, statId FROM stat GROUP BY empId ORDER BY sese")


Den giver følgende fejl:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'sese' as part of an aggregate function.
/stats.asp, line 25
Avatar billede fennec Nybegynder
01. juli 2004 - 13:57 #1
Hvis der ikke er aggregate funktioner skal der ikke være en GROUP BY. Måske den skulle se sådna ud:

Set rsOnUs = Con.Execute("SELECT empId, sese, statId FROM stat ORDER BY sese")
Avatar billede snie97 Nybegynder
01. juli 2004 - 13:59 #2
kan du lede mig ind på hvad en aggregat funktion er?

det jeg vil er at få en liste over folk i en tabel.

tabellens indhold er ligenu:
statId    empId    sess    sese
1    1    1088677887    1088681706
2    41    1088683008    1088683019
3    1    1088685060    1088685060
4    25    1088688808    1088688957
5    1    1088689505    1088690276

Altså 3 forekomster af empId=1 - på udtrækket må der kun være én af hver... derfor prøver jeg (uden held) med en group by...
Avatar billede overchord Nybegynder
01. juli 2004 - 14:04 #3
Problemet er vel at du proever at lave order by paa sese, selvom der er 3 sese-vaerdier - en for hver empid, saa enten skal du ikke medtage sese vaerdien - idet din gruppering saa ikke vil virke, eller ogsaa bliver du noed til at inkludere alle emip.
Du kan selvf ogsaa vaelge den foerste sese vaerdi i aggregatet, men det er lidt svaert at vide om det er brugbart.
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 14:04 #4
empId=1 har 3 forskellig sese og statID - hvilken skal du have?
Avatar billede snie97 Nybegynder
01. juli 2004 - 14:07 #5
erikjacobsen, jeg skal have den seneste = den højeste...
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 14:12 #6
SELECT empId, max(sese) as x, max(statId) as y FROM stat GROUP BY empId ORDER BY x
Avatar billede snie97 Nybegynder
01. juli 2004 - 14:15 #7
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/stats.asp, line 25
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 14:19 #8
Ja, ok, jeg kan ikke garantere det virker i Acess. Prøv at fjerne noget fra sql-sætning og se om det kommer til at virke.

Eller vent på en Access guru ;)
Avatar billede snie97 Nybegynder
01. juli 2004 - 14:23 #9
jeg fik den til at virke ved at fjerne order by...
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 14:29 #10
ok, måske kan du sige  ORDER BY max(sese)
Avatar billede snie97 Nybegynder
01. juli 2004 - 14:35 #11
point anyone?
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 14:37 #12
Nej tak, jeg samler ikke på dem.
Avatar billede snie97 Nybegynder
01. juli 2004 - 14:54 #13
så tager jeg 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
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