l--*_*''' 2 sql sql-server sql-server-2008
我对以下问题感到困惑.我正在做一个左外连接,它返回的行多于无连接.
select COUNT(*) specimen_id from QuickLabDump a
left outer join PracticeandPhysician c
on (a.[Requesting Physician]=c.doctorfirstname+' '+c.DOCTORLASTNAME
and a.[practice code]=c.practicecode)
where
DATEPART(mm, [DATE entered]) =12
and
DATEPART(yy, [DATE entered])=2011
Run Code Online (Sandbox Code Playgroud)
产量 108387
而
select COUNT(*) specimen_id from QuickLabDump a
where
DATEPART(mm, [DATE entered]) =12
and
DATEPART(yy, [DATE entered])=2011
Run Code Online (Sandbox Code Playgroud)
产量 108357
他们不应该返回相同数量的行吗?
当连接PracticeandPhysician表包含表中键的多个行时,会发生这种情况QuickLabDump.
这个查询
select COUNT(*), c.practicecode, a.[Requesting Physician],speciment_id
from QuickLabDump a
left outer join PracticeandPhysician c
on (a.[Requesting Physician]=c.doctorfirstname+' '+c.DOCTORLASTNAME
and a.[practice code]=c.practicecode)
where
DATEPART(mm, [DATE entered]) =12
and
DATEPART(yy, [DATE entered])=2011
GROUP BY c.practicecode, a.[Requesting Physician], speciment_id
HAVING COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)
应该告诉你哪些行有重复.
| 归档时间: |
|
| 查看次数: |
2332 次 |
| 最近记录: |