Hej...
med följande sql sats så får jag data för pågående vecka men den börjar på söndag och slutar på lördag. Kan nån hjälpa mig modifiera sql satsen så att jag få ut data från en måndag till söndag istället.
SELECT d.name_,i.key_,i.start_,i.end_
FROM jbpm_processdefinition d, jbpm_processinstance i
where (d.id_ = i.processdefinition_)
and (yearweek(i.end_) =yearweek(CURRENT_TIMESTAMP)
OR (yearweek(i.start_) = yearweek(CURRENT_TIMESTAMP) ) )
tyvärr fattar jag inte riktigt...jag gjorde om så här men då får jag data från föregående vecka som började på söndag den 3:e jan -Lördag den 9:e jan. Jag vill få data från måndag till söndag och inte söndag till lördag!
SELECT d.name_,i.key_,i.start_,i.end_
FROM jbpm_processdefinition d, jbpm_processinstance i
where (d.id_ = i.processdefinition_)
and (yearweek(i.end_) =yearweek(CURRENT_TIMESTAMP,1)
OR (yearweek(i.start_) = yearweek(CURRENT_TIMESTAMP,1) ) );
jag kopierade in fel kod....jag har testat med som du menar utan att lyckas
SELECT d.name_,i.key_,i.start_,i.end_
FROM jbpm_processdefinition d, jbpm_processinstance i
where (d.id_ = i.processdefinition_)
and (yearweek(i.end_,1) =yearweek(CURRENT_TIMESTAMP,1)
OR (yearweek(i.start_,1) = yearweek(CURRENT_TIMESTAMP,1) ) );
har ett annat problem också...
med följande kod får jag ett fel meddelande:Truncated incorrect time value: '7296:00:00'
select name_,d.id_,
sec_to_time(min(time_to_sec(TIMEDIFF(end_,start_)))) as minduration,
sec_to_time(max(time_to_sec(TIMEDIFF(end_,start_)))) as maxduration,
sec_to_time(avg(time_to_sec(TIMEDIFF(end_,start_))))as avgduration
from jbpm_processdefinition d, jbpm_processinstance i
where d.id_=i.processdefinition_ and end_ is not null;
jag tror att det beror på att det blir för många decimal punkter men jag vet inte hur jag ska fixa det!
Det här borde lösa ditt problem i första inlägget. AND istället för OR.
SELECT d.name_,i.key_,i.start_,i.end_
FROM jbpm_processdefinition d, jbpm_processinstance i
where (d.id_ = i.processdefinition_)
AND yearweek(i.end_,1) =yearweek(CURRENT_TIMESTAMP,1)
AND yearweek(i.start_,1) = yearweek(CURRENT_TIMESTAMP,1)
Det kan ju hända att du har andra problem med koden också. Men detta borde göra att du får ut data för en vecka.
Ang. ditt andra fel: sec_to_time (eller rättare sagt datatypen TIME) kan bara hantera upp till 838 timmar. 7296 är alltså på tok för långt. Prova att selecta max(TIMEDIFF(end_,start_)) i den frågan och se om du får samma fel.
i första frågan....jag vill absolute inte ha AND då det betyder att båda villkoren måste stämma. Jag har dock provat som du säger men det hjälper faktiskt inte.
i den andra frågan, så får jag fortf. samma fel när jag selecta med
select max(TIMEDIFF(end_,start_))
i första frågan....jag vill absolute inte ha AND då det betyder att båda villkoren måste stämma. Jag har dock provat som du säger men det hjälper faktiskt inte.
i den andra frågan, så får jag fortf. samma fel när jag selecta med
select max(TIMEDIFF(end_,start_))
Men tack för att du försökt hjälpa mig ändå!
Men det är lite svårt att veta hur AND-villkoret ska vara när man inte vet hur tabellen ser ut.
295 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25