23. september 2005 - 14:08Der er
12 kommentarer og 1 løsning
Problem med opdateringsforespørgsel (Aggregate)
Følgende opdateringsforespørgsel går i fejl: "Du har forsøgt at køre en forespørgsel, der ikke medtager det angivne udtryk "Tot" som en del af en aggregatfunktion"
UPDATE tempLonpostTotal, Medarbejdere SET Medarbejdere.[Genn_snitløn-var] = tempLonpostTotal.Tot, Medarbejdere.Beregningsgrundlag = Last([tempLonpostTotal].[Dato]) & ", " & Last([tempLonpostTotal].[Dato]) WHERE (((Medarbejdere.Nummer)=[tempLonpostTotal].[Medarbejdernr_]));
Det kører fint nok når jeg kun forsøger at opdatere feltet Tot: UPDATE tempLonpostTotal, Medarbejdere SET Medarbejdere.[Genn_snitløn-var] = tempLonpostTotal.Tot WHERE (((Medarbejdere.Nummer)=[tempLonpostTotal].[Medarbejdernr_]));
Hvordan kommer jeg videre (skal gerne have opdateret begge felter...)
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Last er en aggregat funktion, som kræver en Group By for at virke. Du vil åbenbart have den seneste dato pr. et eller andet - er dét pr medarbejdernummer?
Hvis du laver det i forespørgsler, så lav en ny forespørgsel (aggregatforespørgsel), hvor du grupperer efter medarbejdernummer og laver en Last på din dato (kald evt. feltet for SenesteDato). I din Update forespørgsel henter du aggregatforespørgslen og Medarbejdere tabellen ind og joiner dem (laver en relation) på medarbejdernummer. Derefter kan du lave din update uden at skulle bruge Last funktionen, idet du blot opdaterer Beregningdgrundlag til SenesteDato.
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.