Jesper Stocholm wrote:
> Thomas Møller Nexø <thomas@havensupport.dk> wrote in
> news:bu8la5$rn2$1@sunsite.dk:
>
>> Hej NG,
>>
>> Jeg har lavet en debatside:
>>
http://havensupport.dk/artikeldebat_oversigt.asp, hvor alle
>> nyheder, der er blevet kommenteret optræder i en liste med et
>> link til selve debatten for den givne nyhed.
>>
>> Det virker fint nok, men jeg kunne godt tænke mig at hver gang
>> der bliver svaret på en eksisterende tråd i debatten, at denne
>> tråd bliver representeret i toppen af debatoversigten.
>>
>> Pt. udvælges overskrifterne fra nyhedstabellen og sorteres efter
>> dato, og seneste indlæg vil derfor ikke komme til at stå i toppen
>> af siden.
>>
>> Her er den nuværende SQL:
>>
>> <%
>> Set Rs = Server.CreateObject("ADODB.Recordset")
>> Rs.Open "Select * From nyheder Where
>> Kommenteret = True
>> Order By Dato DESC", Conn
>> %>
>>
>> Herefter loopes der gennem alle posterne og udskrives en
>> overskrift for hver nyhed med mindst én kommentar i tabellen
>> "Artikeldebat", hvor indlæggene ligger.
>>
>> Hvis jeg laver en join-forbindelse med group by vises en liste
>> meed alle de seneste indlæg, men indlæggene vises et hav ad
>> gangen under hinanden. Jeg har så prøvet med group by, men så får
>> jeg en fejl om at jeg ikke bruger alle de kolonner jeg trækker ud
>> fra starten.
>>
>> Set Rs = Server.CreateObject("ADODB.Recordset")
>> Rs.Open "Select Id, Header FROM Nyheder
>> INNER JOIN
>> Artikeldebat ON Nyheder.Id = Artikeldebat.ArtikelId Group By
>> Nyheder.Header Order By Artikeldebat.Dato DESC", Conn
>>
>> Giver fejlen:
>>
>> Microsoft OLE DB Provider for ODBC Drivers fejl '80040e14'
>>
>> [Microsoft][ODBC Microsoft Access-driver] Du har forsøgt at køre
>> en forespørgsel, der ikke medtager det angivne udtryk "Id" som en
>> del af en aggregatfunktion.
>>
>> /haven/artikeldebat_oversigt.asp, linje 77
>>
>>
>> Hvis jeg fjerner group by kommer der som sagt ikke en fejl, men
>> altså en masse rækker med de samme værdier.
>>
>> Nogen der kan hjælpe?
Når du benytter group by skal alle de felter i select-klausulen, der
ikke indgår i en aggregat-funktion også fremgå af group by-klausulen.
Men i øvrigt: hvis du ikke ønsker en aggregatfunktion, kan du lige så
godt bruge select distinct i stedet for.
Det er i øvrigt uklart, hvordan order by fungerer, når du sorterer
efter et felt der ikke udvælges.
--
Kristian Damm Jensen
damm (at) ofir (dot) dk