I have two tables - xtblProcedureKey: pkey, pdesc AND tblVisit: doctorID, postingDate, procedureKey (I may not need one of the tables - tblProcedureKey)

I want to select about 5 procedureKey from xtblProcedureKey and count the number of times they appear in tblVisit within a month's period, giving me a zero by pkey if the count is null - with the counts grouped by docID and pkey. I can get the counts, but it always omits any pkey not in tblV. (Second part of wish list would be a sum of the counts for just 211-213.)

For example
xTblProcedureKey.procedureKey = '99211','99212','99397', myDate range between 9/1/2004 and 9/30/2004
result should be:

doctorID, procedurekey, ProcedureKeycount
11 211 0
11 212 2
11 213 16
11 395 0
11 397 4
16 211 5
16 212 12
16 213 6
16 395 0
16 397 2

Latest try:
select v.doctorID, x.pkey, isNull(count(v.procedureKey),0) as myCount from fhc.dbo.tblVisit v,
(select p.procedureKey as pKey from fhc.dbo.xTblProcedure p where p.procedureKey in ('99211','99212','99213','99395','99396','99397')) as x
where v.procedureKey=x.pKey
group by v.doctorID, x.pkey
order by v.doctorID, x.pkey

I've tried a bunch of stuff, but no luck. Any help?