"Igor Tandetnik" wrote in message news:gl9sa9$be...@ger.gmane.org...
> "jose isaias cabrera" wrote in message
> news:740bad1423a549f6ba68c1e02ab7a...@stso.mc.xerox.com
>> Let us imagine the following table:
>> CREATE TABLE PMTime (id integer primary key, rec integer, date, secs
>> integer);
>>
>> What the program does is to keep track that the secs will not add to
>> more than 28800 for any date.  If it does, a new PMTime record is
>> added with the rest of the secs that are over 28800 and assigned to
>> the next date that is not Saturday or Sunday and to the same rec.  I
>> have been looking into triggers, but I can not even come up with
>> anything close.
>
> Something like this perhaps:
>
> create trigger PMTime_insert after insert on PMTime
> when (select sum(secs) from PMTime where date = new.date) > 28800
> begin
>
> -- insert new record with the overflow
> insert into PMTime(rec, date, secs) values (
>  new.rec,
>  date(new.date, (case strftime('%w', new.date) when '5' then '3' when
> '6' then '2' else '1' end) || ' days'),
>  (select sum(secs) from PMTime where date = new.date) - 28800
> );
>
> -- update just-inserted record and shave off the overflow
> update PMTime set secs =
>    secs - (select sum(secs) from PMTime where date = new.date) + 28800
> where id = new.id;
>
> -- if the previous update brougth secs down to 0, delete the record
> entirely
> delete from PMTime
> where id = new.id and secs = 0;
>
> end;
>
> Igor Tandetnik


thanks, Igor.  I will give this a try...

josé 

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to