0

我正在尝试编写一个脚本,该脚本将从名为“预订”的表中提取信息,其中包含一个列,该列给出了每个预订的长度,称为“小时”。例如,此列中的值显示为 1.0 代表 60 分钟、0.75 代表 45 分钟、0.5 代表 30 分钟。我的脚本需要计算特定长度的预订量并返回值,因此例如我为每个使用 Sum and 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 的值,并且在 30 中添加 +1 计数分钟 case 语句值,

我能想到的唯一方法是创建一个临时表,其中包含 60、45、30 和 15 个计数值的列,然后如果找到结果,则将该表更新 +1,因此 1.25 将更新 #temptable column(60 ) +1 和列 (15)+1。不知道如何做到这一点,非常感谢帮助。

谢谢

西蒙

4

1 回答 1

0

看看这个sql fiddle。希望这足以让你开始。

select hours
       ,100*(hours - round(hours,0,1))
from table1

所以你的代码会是这样的

SUM(case when hours - round(hours,0,1) = 0 then 1 else 0 end) as '60 Mins',

SUM(case when hours - round(hours,0,1) = 0.75 then 1 else 0 end) as '45 Mins',

SUM(case when hours - round(hours,0,1) = 0.5 then 1 else 0 end) as '30 Mins',

SUM(case when hours - round(hours,0,1) = 0.25 then 1 else 0 end) as '15 Mins'
于 2013-05-08T22:14:32.847 回答