webForumDet fria alternativet

senaste månadens data i ett annat år

Databaser & SQL

4 svar · 537 visningar · startad av swingman

Medlem sedan jan. 200686 inlägg
Frågan#1

Jag hade följande kod som funkade bra men när det blev nytt år så funkar det inte som det ska. Koden ska returnera data för senaste avslutat månad. med CURRENT_TIMESTAMP får jag nuvande datum och då var det bara att minusa 1 så fick jag föramånadens. För att undvika samma månad fast från ett annat år så hade jag också att det måste vara samma år. Nu är det knäppigt det där eftersom jag skulle vilja få ut föra månadens men månaden ligger i ett annat år.
Nån med ett bra förslag?

SELECT d.name_,i.key_,i.start_,i.end_
FROM   jbpm_processdefinition d, jbpm_processinstance i
WHERE  d.id_ = i.processdefinition_
  and (
       (month(i.end_) = month(CURRENT_TIMESTAMP)-1
  and year(i.end_) = year(CURRENT_TIMESTAMP)) 
  OR (month(i.start_) = month(CURRENT_TIMESTAMP)-1
  and year(i.start_) = year(CURRENT_TIMESTAMP))
         );
Medlem sedan aug. 20039 340 inlägg
#2

Istället för month(CURRENT_TIMESTAMP)-1 prova month(date_sub(CURRENT_TIMESTAMP, INTERVAL 1 MONTH)) och year(date_sub(CURRENT_TIMESTAMP, INTERVAL 1 MONTH))

Medlem sedan jan. 200686 inlägg
#3

kanon

Det där var exakt vad jag behövde. Tack så jättemycket och god fortsättning!

Medlem sedan aug. 20039 340 inlägg
#4

Markera svaret som lösning?

Medlem sedan jan. 200686 inlägg
#5

Yes!!! det var en lösning för en del av problemmet iaf. Jag har kommit på att jag har lite av problemmet kvar.
Följande kod ger mig data från föra veckan men enbart förra årets. Jag skulle vilja få även årets data som är från föra veckan. Hoppas ni förstår vad jag menar...
koden:
Select d.name_,i.key_,i.start_,i.end_
FROM jbpm_processdefinition d, jbpm_processinstance i
where d.id_ = i.processdefinition_ and
week(i.end_) =week(date_sub(CURRENT_TIMESTAMP, INTERVAL 1 week)) and year(i.end_) = year(date_sub(CURRENT_TIMESTAMP, INTERVAL 1 week))
OR (week(i.start_) = week(date_sub(CURRENT_TIMESTAMP, INTERVAL 1 week)) and year(i.start_) =year(date_sub(CURRENT_TIMESTAMP, INTERVAL 1 week)))
and name_ =?

259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)