如果不存在,则查找值显示为零 SQL
Posted
技术标签:
【中文标题】如果不存在,则查找值显示为零 SQL【英文标题】:find value show zero if not exist SQL 【发布时间】:2018-02-06 11:27:55 【问题描述】:我有如下数据:
SerivceID Service_Name Serivce_Charges FK_VendorID FK_ExpertID FK_CustomerID BookingDate TimeSlot current_Job GettingJobDate
4 Furniture & Home Decor 200 1 2 1 08-11-2017 3 1 2018-02-04 13:57:49.733
连续。现在我想知道哪个查询是:
select A_Services.Service_Name as [Service Name],count(Service_Name) as [Total Serve]
from A_Services where FK_ExpertID = 2 group by Service_Name order by [Service Name]
它显示数据:
Service Name Total Serve
Furniture & Home Decor 1
我想获取数据:
Service Name Total Serve
Furniture & Home Decor 1
Car Towing 0
【问题讨论】:
修正格式。当我尝试编辑问题时,我无法这样做。 所以,如果汽车拖车不在您的餐桌上,您还想展示它吗?那么包含所有名称的基表是什么? 【参考方案1】:以您当前的数据不可能。
“拖车”应该来自某个地方,计算机没有预设服务名称。它怎么知道它是否以“拖曳”或“投掷”或“拖曳”结尾?
您需要指定某处。
(您可以选择您拥有的数据,但不能显示您没有的数据)
解决方案:
可以将相同的服务连接到不同的供应商、专家或客户吗?
如果是,我建议您创建一个服务类型类别。 (ID、姓名)
Id Name
1 Furniture & Home Decor
2 Car Towing
3 Car Painting
4 Etc...
/*Name should be Unique*/
那么,您可以使用 ServiceType_FK
,而不是使用 Service_Name使用该数据,您可以查询:
SELECT ST.Name AS [Service Name], COUNT(S.ServiceType_FK) AS [Total Serve]
FROM ServiceType ST
LEFT JOIN A_Services S
ON S.ServiceType_FK = ST.Id
--WHERE S.FK_ExpertID = 2
GROUP BY ST.Name
返回你想要的。
【讨论】:
以上是关于如果不存在,则查找值显示为零 SQL的主要内容,如果未能解决你的问题,请参考以下文章
根据某些 col1 值查找 col2 值,如果不存在,则使用 pandas 保持最近的值