我们如何通过自定义消息和计数获得 MS Sql 查询的输出?
Posted
技术标签:
【中文标题】我们如何通过自定义消息和计数获得 MS Sql 查询的输出?【英文标题】:How we can get Output by MS Sql query with custom message and count? 【发布时间】:2016-01-20 11:39:29 【问题描述】:我想对以下数据进行 MS Sql 查询,根据需要提供输出。
表名: Emp(两列 EmpID int, VacantEndDate datetime) 表格数据:
EmpID | VacantEndDate
11 | 22-Jun-16
12 | 22-Jun-16
13 | 30-May-15
14 | 30-May-15
15 | 31-Mar-15
16 | 02-Dec-16
MS Sql 按日期查询顺序输出
One Post Vacant on 31-Mar-16
Two Post vacant on 30-May-16
Two Post vacant on 22-Jun-16
One Post Vacant on 02-Dec-16
我尝试查询但没有成功,请帮助我
提前致谢。
【问题讨论】:
使用group by VacantEndDate
和count()
函数。然后你可以使用select case when (count(*) = 1) then 'One Post Vacant on'+cast([VacantEndDate] as nvarchar)
等等。
另见此以获得更通用的数字到单词功能***.com/questions/1673265/…
【参考方案1】:
此脚本将日期时间转换为日期,以防止在任何日期时间中出现时间部分。分组时不同的时间段会导致额外的行。
试试这个:
SELECT
CASE COUNT(*)
WHEN 1 THEN 'One'
WHEN 2 THEN 'Two'
WHEN 3 THEN 'Three'
WHEN 4 THEN 'Four'
WHEN 5 THEN 'Five'
WHEN 6 THEN 'Six'
WHEN 7 THEN 'Seven'
WHEN 8 THEN 'Eight'
WHEN 9 THEN 'Nine'
ELSE 'Ten+'
END +
' Post Vacant on ' +
REPLACE(CONVERT(char(9), CAST(VacantEndDate as date), 6), ' ', '-')
FROM Emp
GROUP BY CAST(VacantEndDate as date)
【讨论】:
【参考方案2】:您可以尝试以下查询:-
SELECT CASE WHEN (COUNT(EmpID) = 1) THEN 'One Post Vacant on' + cast([VacantEndDate] AS NVARCHAR),
WHEN (COUNT(EmpID) = 2) THEN 'Two Post Vacant on' + cast([VacantEndDate] AS NVARCHAR),
WHEN (COUNT(EmpID) = 3) THEN 'Three Post Vacant on' + cast([VacantEndDate] AS NVARCHAR),
WHEN (COUNT(EmpID) = 4) THEN 'Four Post Vacant on' + cast([VacantEndDate] AS NVARCHAR),
WHEN (COUNT(EmpID) = 5) THEN 'Five Post Vacant on' + cast([VacantEndDate] AS NVARCHAR),
WHEN (COUNT(EmpID) = 6) THEN 'Six Post Vacant on' + cast([VacantEndDate] AS NVARCHAR),
WHEN (COUNT(EmpID) = 7) THEN 'Seven Post Vacant on' + cast([VacantEndDate] AS NVARCHAR),
WHEN (COUNT(EmpID) = 8) THEN 'Eight Post Vacant on' + cast([VacantEndDate] AS NVARCHAR),
WHEN (COUNT(EmpID) = 9) THEN 'Nine Post Vacant on' + cast([VacantEndDate] AS NVARCHAR)
FROM Emp
GROUP BY VacantEndDate
这可能对你有帮助。
【讨论】:
以上是关于我们如何通过自定义消息和计数获得 MS Sql 查询的输出?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PHP + MS SQL 应用程序中向用户显示有关维护和夜间作业的消息