【发布时间】:2013-05-08 21:41:20
【问题描述】:
我正在尝试编写一个脚本,该脚本将从名为“预订”的表中提取信息,其中包含一个列,该列给出了每个预订的长度,称为“小时”。例如,此列中的值显示为 1.0 代表 60 分钟、0.75 代表 45 分钟、0.5 代表 30 分钟。我的脚本需要计算特定长度的预订量并返回值,因此例如我对每个使用 Sum 和 Case 语句...
SUM(case when Hours = 1 then 1 else 0 end) as '60 Mins',
SUM(case when Hours = 0.75 then 1 else 0 end) as '45 Mins',
SUM(case when Hours = 0.5 then 1 else 0 end) as '30 Mins',
SUM(case when Hours = 0.25 then 1 else 0 end) as '15 Mins'
我的问题是我需要记录超过 60 分钟的预订并将它们分成这四个组之一,例如 1.5 小时需要在 60 分钟的案例语句中添加 +1 的值以及 +1 计数到 30 分钟的案例陈述值,
我能想到的唯一方法是创建一个临时表,其中包含 60、45、30 和 15 个计数值的列,然后如果找到结果,则将该表更新 +1,因此 1.25 将更新 #temptable列(60)+1 和列(15)+1。不知道如何做到这一点,非常感谢帮助。
谢谢
西蒙
【问题讨论】:
-
好像MOD函数就是你想要的。
-
你用的是什么数据库?
-
SQL 数据库版本 2008
标签: sql sum case temp-tables