Sql Query接收名称而不是ID

时间:2018-05-21 11:34:18

标签: sql sql-server

我正在进行一项查询,其中我想查看客户拥有的总储备金... 问题是我得到客户端ID ...而不是客户端名称。有人可以帮帮我吗?

我当前的查询

Select Reserva.ID_Cliente, count (Reserva.ID_Reserva) 
From Reserva 
left outer join Cliente 
on Reserva.ID_Reserva = Cliente.ID_Cliente 
group by Reserva.ID_Cliente 

我记得有了这个查询,我得到了客户端ID ......但我想收到客户名称,而不是ID。

在预订表中我只有客户ID而不是名称,否则我会选择名称而不是ID。

3 个答案:

答案 0 :(得分:3)

注意:您正在使用左连接,这意味着保留可能没有相应的客户端。

Select Cliente.ClienteName, count (Reserva.ID_Reserva) 
From Reserva 
left outer join Cliente on Reserva.ID_Reserva = Cliente.ID_Cliente 
group by Reserva.ID_Cliente, Cliente.ClienteName;

答案 1 :(得分:0)

尝试以下方法:

Select 
    isnull(Cliente.Name, 'Name missing'), 
    count (Reserva.ID_Reserva) 
From Reserva 
left outer join Cliente 
on Reserva.ID_Reserva = Cliente.ID_Cliente 
group by Cliente.Name, Reserva.ID_Cliente 

这假设表Cliente包含名称字段。左连接没有帮助!如其他地方所述

UPDATE 我已经添加了左连接,并且还包括对名称的空检查。如上所述,这假设没有匹配的客户端进行预订。

答案 2 :(得分:0)

您是不是要通过Reserva.ID_Cliente加入?无论如何,只需在Group By中添加您需要的内容:

Select Cliente.Name, count(Reserva.ID_Reserva) 
From Reserva left outer join Cliente on Reserva.ID_Cliente = Cliente.ID_Cliente group by Reserva.ID_Cliente, Cliente.Name