这是我的查询atm
select Especialidade,Seguradora as 'Plano de Saúde',CodConsulta
from [dbo].[Seguro]
inner join [dbo].[FichaPaciente] on [dbo].[Seguro].[CodFichaPaciente]=[dbo].[FichaPaciente].[CodFichaPaciente]
inner join [dbo].[Consulta] on [dbo].[Consulta].[CodFichaPaciente]=[dbo].[FichaPaciente].CodFichaPaciente
inner join [dbo].[Medico] on [dbo].[Consulta].CodMedico = [dbo].[Medico].CodMedico
inner join [dbo].[Especialidade] on [dbo].[Medico].CodEspecialidade=[dbo].Especialidade.CodEspecialidade
where seguradora = 'Médis'
order by especialidade
这是当前的输出:
Especialidade plano saude codconsulta
Cardiologia Médis 4
Cardiologia Médis 6
Clinica Geral Médis 1
这就是我想要输出的方式:
Especialidade plano saude counted records
Cardiologia Médis 2
Clinica Geral Médis 1
一直试着这几个小时不能找到答案,如果有人可以帮我一把,试过计数,但输出将是medis上的总数,我希望总数来自especialidade
答案 0 :(得分:2)
使用聚合函数COUNT()
和GROUP BY
子句。
试试这个:
select Especialidade,Seguradora as 'Plano de Saúde',Count(*) as CountedRecords
from [dbo].[Seguro]
inner join [dbo].[FichaPaciente] on [dbo].[Seguro].[CodFichaPaciente]=[dbo].[FichaPaciente].[CodFichaPaciente]
inner join [dbo].[Consulta] on [dbo].[Consulta].[CodFichaPaciente]=[dbo].[FichaPaciente].CodFichaPaciente
inner join [dbo].[Medico] on [dbo].[Consulta].CodMedico = [dbo].[Medico].CodMedico
inner join [dbo].[Especialidade] on [dbo].[Medico].CodEspecialidade=[dbo].Especialidade.CodEspecialidade
where seguradora = 'Médis'
group by Especialidade,Seguradora
order by especialidade
详细了解COUNT()
here。