June 9, 2010 at 2:18 pm
Dear all,
For over 2 weeks now, I have resisted coming here for help again for 2 reasons.
1, I worry about going over my quota, in terms of how much help I can ask for and you guys have been generous and kind.
2, I have tried, really tried to do this using a front end tool like asp but I have run into a snag and just don't have any clue how to snap out of it.
If you would be kind again to assist, as usually, it would be really, really appreciated.
The history:
I have 12 judges. This number doesn't change.
Each judge is assigned a case, no more than one case a time.
This is very critical and a bit confusing and I will explain it a bit more.
The cases are assigned randomly.
First, a case is created, then each judge is selected from the dropdown and assigned a case.
The dropdown is also known as a wheel.
Once a judge is assigned a case, the judge disappears from the dropdown (wheel).
After all judges have been assigned a case, and no judge is left on the dropdown, any attempt to assign another case to a judge results to the following message I created:
"No attorneys available to handle case"
This is simply because ALL judges on the dropdown have been assigned a case.
These scenarios work great so far.
The problem I have now is that once all judges have each been assigned a case, and a new case is created, rather than this code below:
If RS.EOF Then
Response.Write "FATAL ERROR: No Judges available to handle case " & paramCaseId
RS.Close
Conn.Close
Response.End
End If
we would like to reload the dropdown with SAME judges and start assigning new cases to each judge all over again.
I indicated that each judge is assigned a case, no more than one case a time in one current WHEEL or dropdown.
I also indicated that is a bit confusing.
Here is why. Even though each judge is assigned one case a time, this is within one wheel or dropdown.
Once all judges in this wheel or dropdown have each been assigned a case, the dropdown or wheel is now empty and will need
to be reloaded so we can start assigning new cases to each judge all over again.
Next time a case is created, the wheel or dropdown is reloaded with same judges and cases are assigned to each judge as they come.
This process goes on until all judges in the dropdown or wheel is assigned a case.
I tried this:
If RS.EOF Then
Response.Write "Reloading Judges wheel"
SQL = "SELECT j.JudgeCode, j.JudgeName " & _
"FROM Judges j " & _
"LEFT JOIN Cases c ON c.JudgeCode = j.JudgeCode " & _
"WHERE c.JudgeCode IS NULL " & _
"ORDER BY j.JudgeName"
RS.Close
Conn.Close
Response.End
End If
I also tried creating another table so that if no more judges are left to be assigned a new case, I can dump contents on the cases table into an archive table, delete data on the CASES table and then reload the dropdown list like this:
If RS.EOF then 'No Judges Available, time to start over
Response.Write "Reloaded Judges Wheel..."
SQL = "INSERT INTO CasesArchive (CaseID, ClientId, JudgeCode, CaseName, CaseType) " & _
"SELECT CaseID, ClientId, JudgeCode, CaseName, CaseType FROM Cases WHERE AssignedCases <> 0 and JudgeCode <> '0'"
'Response.Write "DEBUG SQL: " & SQL & "<HR>"
'Response.end
Set RS = Conn.Execute(SQL)
SQL = "DELETE FROM Cases "
'response.write strsql
'response.end
Set RS = Conn.Execute(SQL)
'Clean up
'call above query again
SQL = "SELECT j.JudgeCode, j.JudgeName " & _
"FROM Judges j " & _
"LEFT JOIN Cases c ON c.JudgeCode = j.JudgeCode " & _
"WHERE c.JudgeCode is null " & _
"ORDER BY j.JudgeName"
Set RS = Conn.Execute(SQL)
End If
It was a tease because it appears to work, except that I am no longer able to capture when a case had previously been inserted into the CASES table for a particular judge.
As you can see, All along, I have been trying to do with ASP
But it isn't working.
I am really stumped as to how to handle this.
Since it isn't working for me in ASP, I thought I might try my hand using a stored proc.
What I would like to do is get some suggestions and I will attempt to handle it myself.
Any suggestions will be greatly appreciated.
I posting the tables just in case it is asked for.
If they aren't needed, please ignore.
I come here as a last resort because I am really bit down.
If using stored proc will help me handle this, I will be grateful for any suggestions to that end.
I have tried some ASP forums but even the best of them is stumped.
I believe they tell me they understand my problem.
Again, thank you for all you do for us here in this great forum.
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Judges]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Judges]
GO
CREATE TABLE [dbo].[Judges] (
[JudgeCode] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[JudgeName] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
--****************************
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Clients]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Clients]
GO
CREATE TABLE [dbo].[Clients] (
[ClientID] [int] IDENTITY (1, 1) NOT NULL ,
[ClientName] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
--*******************************************
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Cases]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Cases]
GO
CREATE TABLE [dbo].[Cases] (
[CaseID] [int] IDENTITY (1, 1) NOT NULL ,
[ClientID] [int] NULL ,
[JudgeCode] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[CaseName] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[CaseType] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
--************************************************
Insert INTO Judges(JudgeCode, JudgeName)
Values('Judge1','Dan Jones');
Insert INTO Judges(JudgeCode; JudgeName)
Values('Judge2','Mike Brown');
Insert INTO Judges(JudgeCode; JudgeName)
Values('Judge3','Patrick Mannuel');
Insert INTO Judges(JudgeCode; JudgeName)
Values('Judge4','James Johnson');
Insert INTO Judges(JudgeCode; JudgeName)
Values('Judge5','Anthony Mack');
Insert INTO Judges(JudgeCode; JudgeName)
Values('Judge6','Dana McCrae');
Insert INTO Judges(JudgeCode; JudgeName)
Values('Judge7','Same Jones');
Insert INTO Judges(JudgeCode; JudgeName)
Values('Judge8','Peter Paul');
Insert INTO Judges(JudgeCode; JudgeName)
Values('Judge9','Samuel Adams');
Insert INTO Judges(JudgeCode; JudgeName)
Values('Judge10','John Boole');
Insert INTO Judges(JudgeCode; JudgeName)
Values('Judge11','Dan Patrick');
Insert INTO Judges(JudgeCode; JudgeName)
Values('Judge12','James Edward')
--************************
Insert Into Clients(ClientName)
Values('Patrick');
Insert Into Clients(ClientName)
Values('Gus');
Insert Into Clients(ClientName)
Values('Jushua');
Insert Into Clients(ClientName)
Values('Martin');
Insert Into Clients(ClientName)
Values('Nabob');
Insert Into Clients(ClientName)
Values('Bill');
Insert Into Clients(ClientName)
Values('Pharoah');
Insert Into Clients(ClientName)
Values('Quisling');
Insert Into Clients(ClientName)
Values('Regina');
Insert Into Clients(ClientName)
Values('Spartacus');
Insert Into Clients(ClientName)
Values('Victor');
Insert Into Clients(ClientName)
Values('Telluride');
Insert Into Clients(ClientName)
Values('Jerome');
Insert Into Clients(ClientName)
Values('Ulysses');
Insert Into Clients(ClientName)
Values('Yearby');
Insert Into Clients(ClientName)
Values('Wallaby');
Insert Into Clients(ClientName)
Values('Yalu');
Insert Into Clients(ClientName)
Values('Xerxes');
Insert Into Clients(ClientName)
Values('Zoroaster');
Insert Into Clients(ClientName)
Values('Ocarina');
Insert Into Clients(ClientName)
Values('Andrew');
Insert Into Clients(ClientName)
Values('Zane');
Insert Into Clients(ClientName)
Values('Steve');
Insert Into Clients(ClientName)
Values('McKay')
June 9, 2010 at 2:35 pm
I think one of the easier ways to accomplish this is to create a WheelID and assign it to the cases the same time the judge is assigned. The WheelID could be kept in a separate table or a "variables" table. When you populate the drop-down, you can get the current WheelID and then perform an outer join to get the current Judges that have no cases assigned to them. If none appear in the result set, then you can increment the WheelID by 1 and re-retrieve to show all the Judges are now available.
For example, add WheelID to the Cases table and Create a Wheel table . Then if the value in the Wheel table is 5, you can perform the outer join to get the judges that are available. Ideally, you wouldn't waste a table to hold one value and you could have a variables table instead that would hold this value and them be incremented as needed
P.S. I don't think there's a limit on how many posts you can have, so I wouldn't worry about it. We're just here to help if we can
CREATE TABLE [dbo].[Cases] (
[CaseID] [int] IDENTITY (1, 1) NOT NULL ,
[ClientID] [int] NULL ,
[WheelID] int null,
[JudgeCode] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[CaseName] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[CaseType] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[Wheel] (
[WheelID] [int] NOT NULL
) ON [PRIMARY]
GO
select j.JudgeCode
from Judges j
left outer JOIN Cases c
on j.JudgeCode = c.JudgeCode
left outer join Wheel W
on c.WheelId = w.WheelID
where c.JudgeCode is null
For better, quicker answers, click on the following...
http://www.sqlservercentral.com/articles/Best+Practices/61537/
For better answers on performance questions, click on the following...
http://www.sqlservercentral.com/articles/SQLServerCentral/66909/
June 9, 2010 at 2:37 pm
In your cases table can a judge be asigned to more than one case? are there any keys that prevent that? If not I would not base your wheel pull on that alone. I would create a parm table if you will and when you load the wheel you populate that parm table. as each judge is asigned you simply remove there name from the parm table. once all judges are gone you start over and reload the parm table with all judges.
Dan
If only I could snap my figures and have all the correct indexes apear and the buffer clean and.... Start day dream here.
June 9, 2010 at 3:03 pm
P.S. I don't think there's a limit on how many posts you can have, so I wouldn't worry about it. We're just here to help if we can
Mike, thanks alot for that vote of confidence.
Dan--
Let me try and answer your question along with comments to Mike's kind suggested solution.
Yes, a judge can have more than one case.
The caveat, which has been a big headache for me is that this wheel, or dropdownlist, can only have 12 judges at same time.
Infact, there are only 12 judges.
So, my front end code is making sure that once a judge is assigned a case, that judge drops off.
This way, that judge won't get another case until all jugdes have been assigned one case in this iteration.
However, to answer your question, the CASES table is supposed to accommodate as many cases for each judge as possible.
They just can't be assigned more than one case at a time.
Kind of look at it this way:
12 judges are lined up.
Each judge receives one case and then starts forming another line.
Each time a judge receives a case, s/he drops off from that line. This way, the rest of the 12 judges each get a case.
Then they get back on line and start receiving each case per judge again.
No judge stays on the line to receive more than one case at a time.
Meanwhile, the table, in this case, CASES table, will continue to record these cases.
The other caveat, which makes this a bit harder is that if client is assigned to a judge at some time be it last year or 10 years for a particular case, if that client comes back again, by default, the judge that handled that case will take up that case again but it will not count as a new assignment.
For instance, let's assume that judge3 is on the line to receive a case belonging to a client has handled before, he or she may receive 3 such cases and still be on the line as long as those clients are NOT new.
confusing?
My asp code is taking care of this.
reloading the dropdown or is my biggest headache.
June 9, 2010 at 3:14 pm
I would think having a parm table would take care of your issue. you could handle the conditional situations with your code. If this is not a new case then you could leave the judge in the parm table and they would continue to be in the wheel until they are given a new case. once the wheel is empty you would grab the 12 judges and stick them back in the parm table. If you need an additional level to key off of you could combine this with Mikes suggestion and store a wheeliteration id. I persoanlly though like a parm table for this kind of think becuase once loaded the amount of resource it takes to load that info into a dropdown is tiny. If you are loading the parm table from a jusdges table for example again it would take very little time. but if you are loading this from a very large table with every case then this may take some time to load the dropdown. just my oppinoin though.
Dan
If only I could snap my figures and have all the correct indexes apear and the buffer clean and.... Start day dream here.
June 9, 2010 at 4:41 pm
I'm going to take this in a little different direction ...
I've simplified the table structures to make it a bit more straight forward. I've also introduced an 'IsActive' field to both judge and case tables because I'm assuming there should be a concept that judges can come and go and cases may be closed, which would free up judges to pick up other cases.
First the tables and the inserts:
create table #judges
(
JudgeIDINT IDENTITY PRIMARY KEY,
JudgeName VARCHAR(50),
IsActive BIT
)
insert into #judges(JudgeName, IsActive)
select 'Dan Jones', 1 union
select 'Mike Brown', 1 union
select 'Patrick Mannuel', 1 union
select 'James Johnson', 1 union
select 'Anthony Mack', 1 union
select 'Dana McCrae', 1 union
select 'Same Jones', 1 union
select 'Peter Paul', 1 union
select 'Samuel Adams', 1 union
select 'John Boole', 1 union
select 'Dan Patrick', 1 union
select 'James Edward', 1;
create table #cases
(
CaseID INT IDENTITY PRIMARY KEY,
JudgeID INT, --in real environment this would be foreign key to judge table
IsActive BIT
)
insert into #cases (JudgeID, IsActive) values (4, 1)
insert into #cases (JudgeID, IsActive) values (9, 1)
insert into #cases (JudgeID, IsActive) values (10, 1)
insert into #cases (JudgeID, IsActive) values (2, 1)
insert into #cases (JudgeID, IsActive) values (11, 1)
insert into #cases (JudgeID, IsActive) values (3, 1)
insert into #cases (JudgeID, IsActive) values (8, 1)
insert into #cases (JudgeID, IsActive) values (1, 1)
insert into #cases (JudgeID, IsActive) values (7, 1)
insert into #cases (JudgeID, IsActive) values (5, 1)
insert into #cases (JudgeID, IsActive) values (6, 1)
insert into #cases (JudgeID, IsActive) values (12, 1)
insert into #cases (JudgeID, IsActive) values (5, 1)
insert into #cases (JudgeID, IsActive) values (2, 1)
insert into #cases (JudgeID, IsActive) values (8, 1);
Now, as for the logic - what this query will do is return an judge that has a minimum number of active cases assigned to them. That number is relative to the other judges so that the only judges returned will have as few active cases as any other judge.
with cteTemp(JudgeID, JudgeName, CaseRank)
as
(
select j.JudgeID,
j.JudgeName,
DENSE_RANK() OVER(ORDER BY COUNT(c.CaseID) ASC)
from #judges j
join #cases c
on c.IsActive = 1
and c.JudgeID = j.JudgeID
where j.IsActive = 1
group by j.JudgeID, j.JudgeName
)
select JudgeID,
JudgeName
from cteTemp
where CaseRank = 1
order by JudgeID
In this example, judges 2, 5, 8 & 12 all had a second case assigned to them, so this query will return all of the other judges excluding these (who all have just one active case.) I would use this query to feed the user interface judge selection drop-down. Your only potential issue is if you have multiple people assigning judges at the same time ... you may need to re-check the availability of the judge at the time the entry is made in the case table (which may be X seconds/minutes/hours after the drop-down was populated.)
June 9, 2010 at 4:43 pm
One way would be to create another table, say,
JudgesAvailable[ThisWheel] (or whatever name).
You pull your judge for the next case randomly from there, then delete that judge from that table.
When the table JudgesAvailable is empty, you repopulate the table.
For example:
IF NOT EXISTS(SELECT TOP 1 * FROM JudgesAvailable)
BEGIN
--all judges have been assigned for this wheel/round,
--load all judges to begin new wheel
INSERT INTO JudgesAvailable
SELECT Judge
FROM Judges
--WHERE Judge {is active}] --if needed
END --BEGIN
SELECT @judge = TOP 1 Judge
FROM JudgesAvailable
ORDER BY NEWID() --force random order for next judge
--The code to assign @judge to the current case goes here,
--exactly like that code is now
DELETE FROM JudgesAvailable
WHERE judge = @judge
Scott Pletcher, SQL Server MVP 2008-2010
June 9, 2010 at 5:25 pm
Greetings again.
I love the ideas very much.
However, there is one thing that is still missing.
Did I neglect to mention this earlier, man!
Ok, there is something called Transfer Case.
Yes, I did mention it, though I don't think I used that name.
A Transfer case is when a client is being assigned a judge and it turns out that that client has had a case being handled by one of those judges either currently or in the past.
In such a situation, that client is automatically assigned to the judge who handled his or her case before.
The important to remind you great guys about here is that even though this client is assigned to the judge who had handled his or her case before, it still doesn't count as a new case assignment.
For instance, to use the queue analogy I used earlier, if the 12 judges are lined up ready to be assigned a case, assume that Judge3 is next to be assigned a case, during case assignment, if the client with the case has once been handled by judge3, Judge3 automatically gets that case and is still on line waiting to be assigned a case because that client's doesn't count.
This type of client or case is called Transfer Case.
BT, only one admin is allowed to assign cases for judges.
Scott, If you take a look at my original post, I think I was doing something similar.
I was using CASES table as staging.
Once all 12 judges have each been assigned a case, then the cases are loaded to the casesArchive table and then deleted from CASES table.
This effectively reloads the judges dropdown or wheel.
Problem is that we lose track of whether the client being assigned to a particular judge is a Transfer Case. In other words, has client been handled by any of the judges before?
I am grateful for your time and kindness.
June 9, 2010 at 5:31 pm
Simply handle the TransferCase on your UI side. Your UI will run a query to see if an active judge has had the client in the last x period of time and if so it can assign it to that judge.
The only change that would need to be made in the code I supplied above would be to add an IsTransfer bit field to the case table and then exclude the records where it is a transfer from the logic to determine the number of cases assigned to each judge.
June 10, 2010 at 7:38 am
You should not delete all rows in the CASES table when the judgewheel table is empty. There's no need to. Why won't the simpler to implement judgeswheel table work without destroying past history??
Scott Pletcher, SQL Server MVP 2008-2010
June 10, 2010 at 8:03 am
hi BT,
when you get a moment, can you please explain your logic, along with the db design a bit more?
I just want to be sure it is doing what the user is asking for.
For instance, this explanation from you:
In this example, judges 2, 5, 8 & 12 all had a second case assigned to them, so this query will return all of the other judges excluding these (who all have just one active case.)
Are you suggesting that judges with 2 or more cases won't be returned in your query but judges with one or less cases would be?
I am bit lost, please.
Also,
What do you guys think if I modify this UI I am using to capture when a client has a case that is being handled by a judge before?
' now, does this client have any cases assigned to any Judge?
SQL = "SELECT TOP 1 JudgeCode FROM Cases WHERE clientID = " & clientid & " AND Coalesce(JudgeCode,'0') <> '0' "
What if I add one additional field that BT suggested and called it isTransferCase - bit data type.
If the client has a case or cases assigned to any judge before or currently during the current assignment cycle, then isTransferCase =1.
This way, I *think* I can still use the logic which is similar to Scott's logic which will dump cases to permanent table after each assignment cycle and delete the cases where isTransferCase <> 1 = this code:
If we reach end of file then --No Judges Available, time to start over
Print "Reloaded Judges Wheel..."
--Dump these cases to permanent table
INSERT INTO CasesArchive (CaseID, ClientId, JudgeCode, CaseName, CaseType)
SELECT CaseID, ClientId, JudgeCode, CaseName, CaseType FROM Cases WHERE isTransferCase <> 1
--Now get rid of the cases except the transfer cases
SQL = "DELETE FROM Cases where IsTransferCase <> 1 "
--call above query again to reload the dropdown (judges wheel)
SELECT j.JudgeCode, j.JudgeName
FROM Judges j
LEFT JOIN Cases c ON c.JudgeCode = j.JudgeCode
WHERE c.IsTransferCase <>1
ORDER BY j.JudgeName"
End If
Hopefully, the Judges wheel will be reloaded, AND during any assignment cycle, we are still able to track when client has an existing case assigned to a judge.
Your thoughts, please.
Again, thanks to all.
June 10, 2010 at 11:04 am
Personally I think it would be undesirable to use additional tables that you insert and delete judges from. Everything that you've explained that you want can be obtained from a simple query. So having this extra table that you're moving records into and out of is both inefficient and an unnecessary redundancy. As you have explained it, all you really need to know is which judges have had fewer cases assigned to them than other judges. If all of them have an equal number then it will return all of them. The number 2 isn't significant in and of itself ... it's the number of cases assigned to each judge relative to the number assigned to other judges.
Whether or not you want to do it any particular way, I think it would behoove you to take the time to understand what the solution I provided is doing. You say you don't understand, but did you take the time to evaluate the code and figure out what's going on? Is there something specific in the code that you don't understand and can't find in Books Online? Understand why the code is returning what it is and then my narrative will make sense to you.
June 10, 2010 at 11:21 am
. As you have explained it, all you really need to know is which judges have had fewer cases assigned to them than other judges.
That's not true here, because of the same-defendant-before-the-same-judge-rule-and-it-doesnt-count-in-the-totals-rule.
Scott Pletcher, SQL Server MVP 2008-2010
June 10, 2010 at 11:24 am
scott.pletcher (6/10/2010)
. As you have explained it, all you really need to know is which judges have had fewer cases assigned to them than other judges.
That's not true here, because of the same-defendant-before-the-same-judge-rule-and-it-doesnt-count-in-the-totals-rule.
I already addressed the very small change that would need to be made to accommodate that logic. If you need to see what that would look like I would be glad to submit a revised code block.
*edit: I went ahead and modified the code as displayed in the next post.
June 10, 2010 at 11:34 am
#judges says the same but #cases is slightly different:
create table #cases
(
CaseID INT IDENTITY PRIMARY KEY,
JudgeID INT, --in real environment this would be foreign key to judge table
IsActive BIT,
IsTransfer BIT
)
insert into #cases (JudgeID, IsActive, IsTransfer) values (4, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (9, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (10, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (2, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (11, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (3, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (8, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (1, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (7, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (5, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (6, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (12, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (5, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (2, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (8, 1, 0)
insert into #cases (JudgeID, IsActive, IsTransfer) values (3, 1, 1);
Notice that the last record is a transfer case for Judge #3.
with cteTemp(JudgeID, JudgeName, CaseRank)
as
(
select j.JudgeID,
j.JudgeName,
DENSE_RANK() OVER(ORDER BY COUNT(c.CaseID) ASC)
from #judges j
join #cases c
on c.IsActive = 1
and c.JudgeID = j.JudgeID
where j.IsActive = 1
and IsTransfer = 0
group by j.JudgeID, j.JudgeName
)
select JudgeID,
JudgeName
from cteTemp
where CaseRank = 1
order by JudgeID
This simple and easy with no-additional-tables-and-moving-records-around query gives a list of all the available judges. So Judges 2, 5, and 8 are not included because they already have more active non-transfer cases than the other judges. Judge 3 is included in the list because he has the same number of active non-transfer cases as all the other judges except for 2, 5 and 8 (who have more.)
Viewing 15 posts - 1 through 15 (of 48 total)
You must be logged in to reply to this topic. Login to reply