13. oktober 2003 - 17:55
Der er
50 kommentarer og 1 løsning
order by, og lidt til
Jeg har en tabel (event) med følgende: id (autonum.) month day sted tid note Jeg vil gerne have tingene vist sorteret efter, først month og bagefter day... hmm... giver det mening ? Men jeg vil gerne skille dem lidt ad: APRIL: 1. tekst 3. tekst MAJ: 23. tekst 26. tekst OKTOBER: 12. tekst --------------- Er der nogen der har fanget min idé ?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
13. oktober 2003 - 17:58
#1
Hov... APRIL: 1. sted - note 3. sted - note MAJ: 23. sted - note 26. sted - note OKTOBER: 12. sted - note
13. oktober 2003 - 18:07
#2
mener at det er GROUP BY month ORDER BY day
13. oktober 2003 - 18:08
#3
Hmm... lyder måske som noget... kender det ikke... kan du ikke give mig eksempel ?
13. oktober 2003 - 18:09
#4
vil skyde på at det er noget ala: SELECT * FROM dintable GROUP BY month ORDER BY day
13. oktober 2003 - 18:15
#5
Jeg får den her Cannot group on fields selected with '*'.
13. oktober 2003 - 18:19
#6
SELECT month, day, sted, tid, note FROM dintable GROUP BY month ORDER BY day hvad siger den?
13. oktober 2003 - 18:20
#7
You tried to execute a query that does not include the specified expression 'day' as part of an aggregate function.
13. oktober 2003 - 18:21
#8
Ok... den ændrede det lige... hmm.. Microsoft VBScript compilation error '800a0409' Unterminated string constant /event.asp, line 7 data.Open "SELECT month, day, sted, tid, note FROM event GROUP BY month ORDER BY day
13. oktober 2003 - 18:24
#9
Min fejl... havde tekstombrydning i notepad... Vi er nået hertil You tried to execute a query that does not include the specified expression 'day' as part of an aggregate function.
13. oktober 2003 - 18:25
#10
hmmm ...har du "SELECT month, day, sted, tid, note FROM event GROUP BY month ORDER BY day"
13. oktober 2003 - 18:27
#11
Yep...
13. oktober 2003 - 18:27
#12
Hele filen ser sådan ud : <%@LANGUAGE="VBScript"%> <!--#include file="connect.asp"--> <% Set data = Server.CreateObject ("ADODB.Recordset") data.Open "SELECT month, day, sted, tid, note FROM event GROUP BY month ORDER BY day", MyConn %> <HTML> <BODY BGCOLOR="#231F2A"> <% While NOT data.EOF %> <% = data.Fields ("month")%> - <% = data.Fields ("day")%> - <% = data.Fields ("tid")%><BR> <% = data.Fields ("sted")%> - <% = data.Fields ("note")%><BR><BR> <% data.MoveNext Wend %> </BODY> </HTML>
13. oktober 2003 - 18:29
#13
hmm sorry, jeg kan ikke hjælpe dig med asp :-/ underligt at sql ikke virker. Kan du foretage en simpel select? "SELECT * FROM event" ?
13. oktober 2003 - 18:32
#14
Ja, der er ingen fejl...
13. oktober 2003 - 18:34
#15
13. oktober 2003 - 18:43
#16
Jeg har klaret det på den gammeldags måde... "SELECT * FROM event WHERE year='2003' ORDER BY month, day ASC" Det klarer ikke problemet med afstanden mellem månederne, men der går ... jeg lader lige spørgsmålet stå åbent hvis der er noget deer har idéer...
13. oktober 2003 - 18:46
#17
hmm måske har jeg misforstået dig... afstanden - hvad mener du?
13. oktober 2003 - 18:48
#18
hvis der er poster fra januar(month='1'), skriv dem sorteret efter day <BR><BR> hvis der er poster fra februar(month='2'), skriv dem sorteret efter day <BR><BR> APRIL: 1. sted - note 3. sted - note MAJ: 23. sted - note 26. sted - note OKTOBER: 12. sted - note På den alm. måde kan jeg ikke styre hvornår month skifter...
13. oktober 2003 - 18:49
#19
1. april - sted - note 3. april - sted - note 23. maj - sted - note osv...
13. oktober 2003 - 18:55
#20
Set rs = Conn.Execute("SELECT * FROM event WHERE year='2003' ORDER BY month, day ASC") While Not rs.EOF If ForrigeMaaned <> rs("month") Then Response.Write "<h2>" & MonthName(rs("month")) & "</h2>" Else Response.Write rs("day") & ". " & rs("sted") & " - " & rs("note") & "<br>" End If ForrigeMaaned = rs("month") rs.MoveNext Wend
13. oktober 2003 - 18:57
#21
zipper>You cant! This is about the closes you will get ( SELECT * FROM event WHERE year='2003' ORDER BY month, day (ASC is default) Then in CODE you check each record to see if the month has changed, if it has then you start with a new MONTH header.
13. oktober 2003 - 18:58
#22
du skal nok ikke regne med at kunne løge dit problem med ét sql kald... medmindre du bruger VIEW-delen... f.eks. spørg efter sorteret udtræk (som ovenfor) while (sålænge der er data i databasen) for(int tæller = 1 ; ...) hvis maaned = tæller udskriv ellers udskriv <br /><br /> continue //bare en idé
13. oktober 2003 - 18:59
#23
Ig you use GROUP BY then you will STILL get 1. april - sted - note 3. april - sted - note 23. maj - sted - note because you want to see all days then days CAN NOT be GROUPED and therefore its pointless using GROUP BY!
13. oktober 2003 - 19:00
#24
Hmm... forvirrende... Kan jeg ellers ikke bare lave 12 udtræk ? Jeg ved godt det er en lamer løsning, men om ikke andet en løsning ? *GG* "SELECT * FROM event WHERE year='2003', month='1' ORDER BY day ASC" "SELECT * FROM event WHERE year='2003', month='2' ORDER BY day ASC"
13. oktober 2003 - 19:01
#25
Hvis jeg ikke tager meget fejl, gør min løsning det, du beder om (som Terry også beskriver). Og ja, ASC kan du bare undlade, da det er default.
13. oktober 2003 - 19:03
#26
du kan godt lave 12 sql kald, men det som jeg og netro skitserer burde med lidt snilde kunne klare det
13. oktober 2003 - 19:04
#27
Jeg prøver lige netro's så...
13. oktober 2003 - 19:04
#28
zipper it would be MUCH faster if you made ONE select and ALL 12 months! Then in code check to see if the month in th ecurrent record has changed. Netro's example is VERY close to what you want!
13. oktober 2003 - 19:05
#29
yes netro,exactly!
13. oktober 2003 - 19:08
#30
Okay... der skete noget... jeg har lavet et par tests i min db med 4 måneder som kommer frem, men kun månedsnavnene... ikke resten ? januar april maj december
13. oktober 2003 - 19:09
#31
Det lyder som om, du har en GROUP BY på!?
13. oktober 2003 - 19:10
#32
Nope.... <%@LANGUAGE="VBScript"%> <!--#include file="connect.asp"--> <% Set data = Server.CreateObject ("ADODB.Recordset") Set rs = MyConn.Execute("SELECT * FROM event WHERE year='2003' ORDER BY month, day ASC") %> <HTML> <BODY BGCOLOR="#231F2A"> <FONT FACE="Verdana" SIZE="1" COLOR="#ffffff"> <% While Not rs.EOF If ForrigeMaaned <> rs("month") Then Response.Write "<h2>" & MonthName(rs("month")) & "</h2>" Else Response.Write rs("day") & ". " & rs("sted") & " - " & rs("note") & "<br>" End If ForrigeMaaned = rs("month") rs.MoveNext Wend %> </FONT> </BODY> </HTML> Det du skrev... eller har jeg lavet noget forkert ?
13. oktober 2003 - 19:15
#33
You need to write day and sted also when month changes No idea how you do that in ASP :o)
13. oktober 2003 - 19:17
#34
Det står der da i koden nu, så vidt jeg kan se... jeg er ikke så hård til ASP dog... men det ser ud til at give mening... det virker bare ikke helt...
13. oktober 2003 - 19:19
#35
While Not rs.EOF If ForrigeMaaned <> rs("month") Then Response.Write "<h2>" & MonthName(rs("month")) & "</h2>" Response.Write rs("day") & ". " & rs("sted") & " - " & rs Else Response.Write rs("day") & ". " & rs("sted") & " - " & rs("note") & "<br>" End If ForrigeMaaned = rs("month") rs.MoveNext Wend
13. oktober 2003 - 19:19
#36
While Not rs.EOF If ForrigeMaaned <> rs("month") Then Response.Write "<h2>" & MonthName(rs("month")) & "</h2>" Response.Write rs("day") & ". " & rs("sted") & " - " & rs("note") & "<br>" Else Response.Write rs("day") & ". " & rs("sted") & " - " & rs("note") & "<br>" End If ForrigeMaaned = rs("month") rs.MoveNext Wend
13. oktober 2003 - 19:21
#37
Microsoft VBScript compilation error '800a0412' Must be first statement on the line /event03.asp, line 18 Response.Write rs("day") & ". " & rs("sted") & " - " & rs("note") & "<br>" Else
13. oktober 2003 - 19:21
#38
not a very good text editor :o) While Not rs.EOF If ForrigeMaaned <> rs("month") Then Response.Write "<h2>" & MonthName(rs("month")) & "</h2>" Response.Write rs("day") & ". " & rs("sted") & " - " & rs("note") & "<br>" Else Response.Write rs("day") & ". " & rs("sted") & " - " & rs("note") & "<br>" End If ForrigeMaaned = rs("month") rs.MoveNext Wend
13. oktober 2003 - 19:22
#39
I know NOTHING about ASP, but it should give you an idea.
13. oktober 2003 - 19:23
#40
Der kom 4 måneder med 1 post under hver, men jeg har 10 poster i alt, men 4 forskellige måneder... januar 05. et ssss - ting april 12. et sted - 12-april maj 12. ude - 12-maj december 24. jul - 24-dec
13. oktober 2003 - 19:24
#41
Det er med vilje at datoen står til sidst nogle steder... det er ikke scriptet... :o)
13. oktober 2003 - 19:28
#42
Ja, min fejl. Du kan bare gøre sådan: While Not rs.EOF If ForrigeMaaned <> rs("month") Then Response.Write "<h2>" & MonthName(rs("month")) & "</h2>" End If Response.Write rs("day") & ". " & rs("sted") & " - " & rs("note") & "<br>" ForrigeMaaned = rs("month") rs.MoveNext Wend
13. oktober 2003 - 19:30
#43
Ingen ændring... stadig kun én post pr. måned...
13. oktober 2003 - 19:38
#44
Og hvordan ser hele dit recordsæt så ud? Set rs = MyConn.Execute("SELECT * FROM event WHERE year='2003' ORDER BY month, day") While Not rs.EOF Response.Write rs("month") & "<br>" rs.MoveNext Wend
13. oktober 2003 - 19:39
#45
Kopi fra fil: Set rs = MyConn.Execute("SELECT * FROM event WHERE year='2003' ORDER BY month, day")
13. oktober 2003 - 19:40
#46
Resultat af While Not rs.EOF Response.Write rs("month") & "<br>" rs.MoveNext Wend : 01 04 05 12
13. oktober 2003 - 19:44
#47
Where is the output THIS line line Response.Write rs("day") & ". " & rs("sted") & " - " & rs("note") & "<br>" Try While Not rs.EOF Response.Write rs("month") & " - " & rs("day") "<br>" rs.MoveNext Wend
13. oktober 2003 - 19:46
#48
Microsoft VBScript compilation error '800a0401' Expected end of statement /event03.asp, line 16 Response.Write rs("month") & " - " & rs("day") "<br>"
13. oktober 2003 - 19:47
#49
Så er der jo også kun fire poster!!?
13. oktober 2003 - 19:47
#50
Response.Write rs("month") & " - " & rs("day") & "<br>"
13. oktober 2003 - 19:50
#51
There we go... jeg slettede alle poster i db'en og skrev nogle nye... nu virker den... Mange tak skal I have... ;-)
Kurser inden for grundlæggende programmering