webForumDet fria alternativet

För ett år sedan

Databaser & SQL

6 svar · 225 visningar · startad av yerkin

Medlem sedan dec. 2001423 inlägg
Frågan#1

Hej!!

Sitter och funder på hur man skulle kunna göra, men kommer inte på det.
Vad jag vill?
Jo, att plocka ut rubriken ( fldRubrik ) från min tblNyheter, för ett år sedan. Finns det inte någon från den dagen exakt, m.a.o jag skrev ingen nyhet den dagen, så tar den nyheten som är närmast den dagen.
Tanken är att jag ska presentera en länk i stil med "Vad skrev jag om för ett år sedan?"

Något förslag??

Medlem sedan dec. 200012 464 inlägg
#2
select fldRubrik from tblNyheter
where fldDate = (
  select max(fldDate) 
    from tblNyheter
   where fldDate <= current_date - interval '1' year)

Hur man får fram ett datum som är 1 år tillbaka i tiden skiljer sig åt mellan olika DBMS. (Ovanstående är enligt ANSI SQL.)

Flyttas från asp.

Medlem sedan dec. 2001423 inlägg
#3

Tackar för svaret!

Får dock upp ett felmeddelande när jag testar ovanstående. Det blir fel 80004005, och hänvisning till raden där det står "where fldDate <= current_date - interval '1' year)"

Har det med det du nämde om olika DBMS ( osäker på vad det är)?!
Jag kör med en acces db.

Medlem sedan dec. 200012 464 inlägg
#4

DBMS är en förkortning av database management system, t.ex access, DB2 eller Oracle.

I access så borde frågan se ut som

select fldRubrik from tblNyheter
where fldDate = (
  select max(fldDate) 
    from tblNyheter
   where fldDate <= dateadd('yyyy',-1,date())
Medlem sedan dec. 2001423 inlägg
#5

Tack igen!!
Nu fick jag dock ett annat felmeddelande.
Microsoft JET Database Engine fel '80040e14'

), ], eller Item saknas i frågeuttrycket 'fldDate = ( select max(fldDate) from tblnyheter where fldDate <= dateadd('yyyy',-1,date())'.

ÄR det pga att det saknas en "nyhet" den dagen ( för ett år sedan ) ?

För jag vill då att den skall ta den nyhet som är närmast isåfall. Går det att lösa?
Jag menar vissa veckor är jag flitig och skriver nyheter varje dag, och vissa veckor kanske det bara blir tre dagar som jag skriver....

Förlåt om jag är jobbig....

Medlem sedan dec. 200012 464 inlägg
#6

Det är jag som är slarvig och glömmer en parentes

select fldRubrik from tblNyheter
where fldDate = (
  select max(fldDate) 
    from tblNyheter
   where fldDate <= dateadd('yyyy',-1,date()))
Medlem sedan dec. 2001423 inlägg
#7

Och det fungerade klockrent!!
:)

Tackar och bockar för hjälpen!!

244 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)