/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
GROUP BY og ORDER BY. MSSQL
Fra : Søren Larsen


Dato : 31-03-01 15:53

Hej.

Hvordan får jeg udtrukket følgende data
således at de grupperes efter nummer og
inden for det enkelte nummer, sorteres efter dato?


Nummer Dato Text1 Text2

100 2000-02-01 432 Hallo
100 2000-03-01 432 Hallo
200 2000-01-01 wdfdsdf 234e
200 2000-01-04 Hallo Hej
100 2000-04-01 432 Hallo
100 2000-01-01 432 Hallo
100 2000-01-01 432 Hallo
234 1999-05-01 post11 hallo igen
100 1999-12-22 433 Hallo
100 2000-05-07 432 Hallo
100 2000-01-01 432 Hallo
234 2000-03-15 kjhgk hkkjh
234 2000-01-01 kjhhj 908uj


En simpel ORDER BY Dato giver selvfølgelig
dette resultat.

234 1999-05-01 post11 hallo igen
100 1999-12-22 433 Hallo
100 2000-01-01 432 Hallo
100 2000-01-01 432 Hallo
100 2000-01-01 432 Hallo
200 2000-01-01 wdfdsdf 234e
234 2000-01-01 kjhhj 908uj
200 2000-01-04 Hallo Hej
100 2000-02-01 432 Hallo
100 2000-03-01 432 Hallo
234 2000-03-15 kjhgk hkkjh
100 2000-04-01 432 Hallo
100 2000-05-07 432 Hallo


Men det jeg ønsker er dette:

234 1999-05-01 post11 hallo igen
234 2000-01-01 kjhhj 908uj
234 2000-03-15 kjhgk hkkjh
100 1999-12-22 433 Hallo
100 2000-01-01 432 Hallo
100 2000-01-01 432 Hallo
100 2000-01-01 432 Hallo
100 2000-02-01 432 Hallo
100 2000-03-01 432 Hallo
100 2000-04-01 432 Hallo
100 2000-05-07 432 Hallo
200 2000-01-01 wdfdsdf 234e
200 2000-01-04 Hallo Hej

Jeg troede at jeg kunne gruppere efter Nummer og til sidste sortere efter
Dato, sådan her:
select Nummer, Dato, Text1,Text2 from Table1 group by Nummer, Dato,
Text1,Text2 order by dato

Men resultatet blev at grupperingen blev "ødelagt" af sorteringen.

Idéen er at den gruppe der har den "laveste" dato skal komme først, em altså
samlet i een gruppe.

Nogen idéer?




 
 
Robert Piil (31-03-2001)
Kommentar
Fra : Robert Piil


Dato : 31-03-01 17:11

On Sat, 31 Mar 2001 16:53:10 +0200, "Søren Larsen"
<sblar@mail.tele.dk> wrote:

>Jeg troede at jeg kunne gruppere efter Nummer og til sidste sortere efter
>Dato, sådan her:
>select Nummer, Dato, Text1,Text2 from Table1 group by Nummer, Dato,
>Text1,Text2 order by dato

Hvad sker der, hvis du gør følgende:

SELECT Nummer, Dato, Text1,Text2 FROM Table1 GROUP BY Nummer ORDER BY
dato;

--
Med venlig hilsen
Robert Piil
Http://rpiil.dk/

Robert Piil (31-03-2001)
Kommentar
Fra : Robert Piil


Dato : 31-03-01 17:15

On Sat, 31 Mar 2001 18:10:43 +0200, Robert Piil <piil@nospam.dk>
wrote:

>SELECT Nummer, Dato, Text1,Text2 FROM Table1 GROUP BY Nummer ORDER BY
>dato;
^
Skal vist være med stort, hvis du har været konsekvent.

--
Med venlig hilsen
Robert Piil
Http://rpiil.dk/

Kristian Damm Jensen (04-04-2001)
Kommentar
Fra : Kristian Damm Jensen


Dato : 04-04-01 12:22

"Søren Larsen" wrote:
>
> Hej.
>
> Hvordan får jeg udtrukket følgende data
> således at de grupperes efter nummer og
> inden for det enkelte nummer, sorteres efter dato?
>
> Nummer Dato Text1 Text2
>
> 100 2000-02-01 432 Hallo
> 100 2000-03-01 432 Hallo
> 200 2000-01-01 wdfdsdf 234e
> 200 2000-01-04 Hallo Hej
> 100 2000-04-01 432 Hallo
> 100 2000-01-01 432 Hallo
> 100 2000-01-01 432 Hallo
> 234 1999-05-01 post11 hallo igen
> 100 1999-12-22 433 Hallo
> 100 2000-05-07 432 Hallo
> 100 2000-01-01 432 Hallo
> 234 2000-03-15 kjhgk hkkjh
> 234 2000-01-01 kjhhj 908uj

<snip>

> Jeg troede at jeg kunne gruppere efter Nummer og til sidste sortere efter
> Dato, sådan her:
> select Nummer, Dato, Text1,Text2 from Table1 group by Nummer, Dato,
> Text1,Text2 order by dato
>
> Men resultatet blev at grupperingen blev "ødelagt" af sorteringen.
>
> Idéen er at den gruppe der har den "laveste" dato skal komme først, em altså
> samlet i een gruppe.

<snip>

Group by og order by har intet med hinanden at gøre og må ikke blandes
sammen.

Det giver kun mening at benytte group by, hvis man skal bruge
aggregeringsfunktioner som sum, count, max o.l.

Hvad du søger er

select Nummer, Dato, Text1,Text2
from Table1
group by Nummer, Dato, Text1,Text2
order by Nummer, dato


--
Kristian Damm Jensen | Feed the hungry. Go to
kristian-damm.jensen@capgemini.dk | http://www.thehungersite.com


Søg
Reklame
Statistik
Spørgsmål : 177517
Tips : 31968
Nyheder : 719565
Indlæg : 6408645
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste