Nis Jorgensen wrote:
>
> On Fri, 11 Jan 2002 09:33:55 +0100, Kristian Damm Jensen
> <kristian-damm.jensenRE@MOVEcgey.com> wrote:
>
> >
> >> >select *
> >> > from svar_konkurrence
> >> > having k_id = max(k_id)
> >> >
> >> >Det sidste er enklere og mere logisk, men vil i mange tilfælde ikke
> >> >fungere pga. den måde forespørgslen implementeres.
> >>
> >> Først og fremmest virker det ikke fordi det ikke er korrekt SQL.
> >
> >Hvorfor mener du ikke, at der er korrekt SQL?
>
> På grund af referencen til k_id i HAVING-klausulen. HAVING virker på
> en grupperet tabel, i dette tilfælde betragtes hele tabellen som een
> gruppe fordi der ikke er nogen GROUP BY. Altså kan HAVING ikke se k_id
> feltet for de enkelte rækker.
>
> Kender du nogen databaseprodukter som accepterer din forespørgsel, og
> i givet fald hvilke?
Lad mig sige det sådan: jeg har i al fald tidligere oplevet at Sybase
(version 10) accepterede forespørgslen. (Jeg havde nogle problemer med
at få det til at fungere, men det skyldtes i lige så høj grad, at den
var mere kompleks end ovenstående.)
I samme version af Sybase var det muligt i samme select både at få
enkeltværdierne og den aggregerede værdi.
Og dette burde der teknisk set heller ikke være noget problem i. At den
aggregerede værdi udregnes på baggrund af en gruppe, forhindrer ikke at
de enkelte poster i gruppe kan vises med den aggregerede værdi. Men jeg
vil ikke afvise, at SQL-definition forbyder dette; jeg har ikke
undersøgt det.
--
Kristian Damm Jensen | Feed the hungry at
www.thehungersite.com
kristian-damm.jensen@cgey.dk | Two wrongs doesn't make a right,
ICQ# 146728724 | but three lefts do.