Multiple increments in table
For me the way to go is that you create a pre-insert trigger that will set the BILL_ID for that department when no BILL_ID was given. To get the next BILL_ID you could use a table that holds the last BILL_ID per department. An other way is to get the MAX(BILL_ID) for that department and add 1 to it. When you work with multiple users then the first solution is better and faster. The primary key for the BILLS table would be DEPARTMENT_ID, BILL_ID and perhaps even YEAR if you need to start at 1 when the new year starts.