webForumDet fria alternativet
Logga in / Bli medlem

sortering/gruppering efter datum

Databaser & SQL

6 svar · 438 visningar · startad av Toonster

Medlem sedan feb. 20001 590 inlägg
Frågan#1

Skulle vilja ha lite hjälp med en SQL-sats. Har tyvärr inte Access på datorn jag sitter vid denna vecka, så jag kan inte "leka" med frågorna där...

Hursomhelst, jag vill sortera informationen efter datum (fält av datatypen datum) Där kommande datum listas först, sedan datum som passerat, och jag vill göra det med en SQL fråga. Misstänker att det blir någon eller några GROUP BY, men får inte till det riktigt.

Så här vill jag ha det:

2004-07-10 Ledningsmöte
2004-07-15 Kontrollgruppen
2004-07-20 Utvecklingsmöte
2004-06-10 Utvecklingsmöte (*)
2004-06-05 Utvecklingsmöte (*)
2004-05-10 Gruppledarmöte (*)

(*) datum passerat

Jag vill alltså gruppera där kommande datum listas först i stigande ordning, sedan passerade datum i fallande ordning

Tricky?

Medlem sedan mars 20033 686 inlägg
#2

Vill du sortera i ordning helt enkelt?

Eller är jag dum nu? :)

Medlem sedan feb. 20001 590 inlägg
#3

Ja och nej, kolla in exemplet jag gjorde ovan.

Medlem sedan dec. 200012 464 inlägg
#4

Group by har inget med sortering att göra.

order by iif(datum >= date(),0,1),
iif(datum >= date(),datum,date()) asc,
iif(datum >= date(),date(),datum) desc
Medlem sedan feb. 20001 590 inlägg
#5

Okey, ska kolla in det där, ser ut att funka. Danke!

Medlem sedan okt. 20001 285 inlägg
#6

hmm .. får inte till det .. ska ha grupperat det som kommer

år månad dag
- ( tid H:I ) Event blah blah
- ( tid H:I ) Event blah blah
- ( tid H:I ) Event blah blah
- ( tid H:I ) Event blah blah

gärna spegelvänt ovan för .. dvs

             \- ( 17:00 ) Event blah blah
             \- ( 19:00 ) Event blah blah
             \- ( 20:00 ) Event blah blah

2007 12 12

2008 01 36
- ( 15:00 ) Event blah blah
- ( 19:00 ) Event blah blah
- ( 19:30 ) Event blah blah
- ( 21:15 ) Event blah blah

Det är väl mest sql satsen som är problemet .. tror jag

Medlem sedan okt. 20001 285 inlägg
#7

ah... gjorde en enkel grej..

$aaaaa = "0";
for($i=0; $i<count($events); $i++) 
{
    $eeeee = date ("Y m d",$events[$i]['event_start_time']);
			
    if ($aaaaa != $eeeee)
    {
        $ret .= "<li>".$eeeee."</li>";
        $aaaaa = $eeeee;
    }
    etc...
    return $ret
265 ms totalt · 4 externa anrop · v20260731065814-full.05830320
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)