CatZ Medlem sedan jan. 2002 2 440 inlägg Frågan 1 okt. 2002 15:57 #1 Det skriver bara ut senaste månaden och inte alla senaste som jag vill..... här kommer iaf koden
SQL = "SELECT DISTINCT NrDatum FROM Nyheter"_
& " WHERE NOT ((datepart('m', NrDatum) = " & datepart("m", date) & ")"_
& " AND (datepart('yyyy', NrDatum) = " & datepart("yyyy", date) &"))" _
& " ORDER BY NrDatum DESC"
set rs = dbCom.Execute(SQL)
Dim Ar, Manad
Ar = datepart("yyyy", rs("NrDatum"))
Manad = datepart("m", rs("NrDatum"))
xTmp =""
Do while not rs.EOF
If xTmp <> Manad Then
response.write "<table width=100% border=0 cellpadding=3 cellspacing=0 class=table>" _
& "<tr class=td2><td>" _
& "<a href=nyheter.asp?ar=" & Ar & "&manad=" & Manad & ">" _
& getMonthLong(datepart("m", rs("NrDatum"))) & ", "_
& datepart("yyyy", rs("NrDatum")) & "</a>" _
& "</td></tr>"
xTmp = Manad
End If
rs.MoveNext
Loop
Någon som fattar vad som är fel?
redigerad:
Glöm det jag sa :e
L LarsG Medlem sedan dec. 2000 12 464 inlägg Ar = datepart("yyyy", rs("NrDatum"))
Manad = datepart("m", rs("NrDatum"))
lägg dessa innaför loopen.
CatZ Medlem sedan jan. 2002 2 440 inlägg Tack LarsG, nu har jag ändrat om lite men nu skriver den ut Augusti månad två gånger...? Såhär ser koden ut nu:
SQL = "SELECT DISTINCT NrDatum FROM Nyheter"_
& " WHERE NOT ((datepart('m', NrDatum) = " & datepart("m", date) & ")"_
& " AND (datepart('yyyy', NrDatum) = " & datepart("yyyy", date) &"))" _
& " ORDER BY NrDatum DESC"
set rs = dbCom.Execute(SQL)
Do while not rs.EOF
xTmp =""
Ar = datepart("yyyy", rs("NrDatum"))
Manad = datepart("m", rs("NrDatum"))
If xTmp <> Manad Then
Response.Write "<a href=nyheter.asp?ar=" & Ar & "&manad=" & Manad & ">" _
& getMonthLong(datepart("m", rs("NrDatum"))) & ", "_
& datepart("yyyy", rs("NrDatum")) & "</a><br>"
xTmp = Manad
End If
rs.MoveNext
Loop
L LarsG Medlem sedan dec. 2000 12 464 inlägg [b]xTmp =""[/b]
Do while not rs.EOF
Ar = datepart("yyyy", rs("NrDatum"))
Manad = datepart("m", rs("NrDatum"))
If xTmp <> Manad Then
Response.Write "<a href=nyheter.asp?ar=" & Ar & "&manad=" & Manad & ">" _
& getMonthLong(datepart("m", rs("NrDatum"))) & ", "_
& datepart("yyyy", rs("NrDatum")) & "</a><br>"
xTmp = Manad
End If
rs.MoveNext
Loop
Kan du inte göra
select distinct datepart('m',nrdatum),datepart('y',nrdatum)
så slipper du den där hanteringen?
CatZ Medlem sedan jan. 2002 2 440 inlägg Det kan jag säkert, men hur gör jag då?
När jag försöker mig på ditt exempel så kan jag inte komma åt några rs("fält") poster...
/red, skrev fel inlägg i förra posten, jag får samma problem med xTmp utanför loopen.
L LarsG Medlem sedan dec. 2000 12 464 inlägg select distinct datepart('m',nrdatum)as m,datepart('y',nrdatum) as y
så kan du använda rs("m") och rs("y"). Det går också med rs(0) och rs(1)
CatZ Medlem sedan jan. 2002 2 440 inlägg aha när jag väljer select distinct måste jag skriva alla värden, så då kan jag göra
select distinct datepart('m',nrdatum)as m,datepart('y',nrdatum) as y, NrDatum
Om jag behöver använda hela datumet oxo ?
L LarsG Medlem sedan dec. 2000 12 464 inlägg select distinct datepart('m',nrdatum)as m,datepart('y',nrdatum) as y, NrDatum
om du gör så så har du ingen nytta av distinct (eftersom den gäller för alla kolumner) så att det hjälper inte.
Jag föreslog att du skulle kunna använda distinct just på grund av att du bara använder år och månad i din ASP-kod.
CatZ Medlem sedan jan. 2002 2 440 inlägg Jadå det kan jag också, var mest nyfiken på om det gick att göra så som jag frågade. Mitt problem är nu då att jag inte får ORDER BY delen att fungera. Skulle villja göra ORDER BY y DESC, m DESC men får då
Feltyp:
Microsoft JET Database Engine (0x80004005)
ORDER BY-instruktionen (y) stämmer inte med DISTINCT.
på
& " ORDER BY y DESC, m DESC"
L LarsG Medlem sedan dec. 2000 12 464 inlägg Det där är lite speciellt i Jet SQL.
Du får skriva
order by 2 desc, 1 desc
2:an står för andra kolumnen i select-listan dvs året.
I stort sett alla andra DBMS tillåter att man skriver som du gjorde.
CatZ Medlem sedan jan. 2002 2 440 inlägg *suck* Någon gång i framtiden ska jag byta till SQL istället... har inte riktigt råd dock.
Tack för hjälpen LarsG nu fungerar det utmärkt!
@nders Medlem sedan juni 2000 32 967 inlägg
*suck* Någon gång i framtiden ska jag byta till SQL istället... har inte riktigt råd dock.
Du menar Microsoft SQL Server?
Det finns flera schyssta dbms som är "gratis", exempelvis MySQL. Kanske något att snegla på om tillfälle ges. :)
Mvh,