Dan
Yeah, we have experienced the same issue with time getting out of sync between the timesheets and the project files. There are a couple things that can cause this to happen. The most common is a PM adjusting the %complete of a task in MSP. This will create or remove actual work (as %complete is increased or reduced). The second way we see this happening is if a resource enters time on the wrong task, and the PM approves and updates the project. Later, when the resource realizes their error, they go back to their task list and delete the incorrect entries. Even after updating, this change (deletion) does not propagate to MSP
Gary is correct that comparing the MSP_WEB_WORK table with the MSP_TASKS is the right way to approach things, though this is not a simple thing to do. First, you will need to join the MSP_WEB_WORK table to MSP_WEB_ASSIGNMENT in order to get the project and task info. I think you will need to do some joins on the MSP side to get the right resource info (but I can't check that right now). Second, and more difficult, is the issue of internal storage format. The MSP_WEB_WORK table does not store one entry per day / per assignment. Instead, multiple days with the same hours are stored as start, end, hours/day. So if I work 8 hours a day on a task this week, what gets put into MSP_WEB_WORK is Start=5/3/04, End=5/7/04, Value=480000 (8 hours * 60000). This is a single entry, not five entries for five days. Moreover, if I work Monday and Tuesday, then update my time, then Wed-Fri. I will end up with two entries. One for 5/3-5/4 and another for 5/5-5/7
Because of the problems with the updates (and the fact that, as you noted, the Web side is the CORRECT data), we do all of our important reporting using the timesheet data. In order to simplify this reporting, I have created a new table for time entries and I have a procedure that reads and "expands" the MSP_WEB_WORK table into that table. This expanded data is simplified to one entry per day per assignment (my five days of work example above would be five entries). If you want to do any kind of compare (other than manually), I think you will need to do something similar
Hope this helps
Mik