• Short answer to a long question:

    If the salaries are paid on a weekly basis, and they are not guaranteed always the same every week, and they need to be stored, then yes: you will get 52 or 53 rows per year.

    A year has approximately 365,2425 days per year, that is not an exact multiple of 7. No way to change that.

    I have no doubt that your application consists of a whole lot of mysery, held together by duct tape and hope. But storing weekly data in a table that has 52 or 53 rows per employee per year might well be its only redeeming quality, not its biggest fault.

    EDIT: Upon once more rereading your post - storing those 52/53 rows up front at the start of the year is not necessarily a good idea, and you could also consider if you need rows when no salary was paid, e.g. because the employee was on unpaid leave for the entire week, or because their contract started/ended during the year.


    Hugo Kornelis, SQL Server/Data Platform MVP (2006-2016)
    Visit my SQL Server blog: https://sqlserverfast.com/blog/
    SQL Server Execution Plan Reference: https://sqlserverfast.com/epr/