我编写了以下查询,根据条件计算小时数:
select h.device_id,
h.month_id,
h.group,
h.hours,
t.class
from dbo.network_hours h,
dbo.monthly_class t
where h.device_id = t.device_id
and h.month_id = t.month_id
and
case when h.group IN ('Adult','Zone','Family','Latino','Comedy','West')
then h.hours >= 0.13333
end h.hours >= 0.08333;
所以目标是:
如果该值为> = 8分钟(0.133小时),并且其他类别不属于该组,则需要花费一些课时间
小时必须> = 5分钟(0.0833小时)。我使用CASE尝试过以上但不确定。没有这样的错误,但我如何确保我得到了
正确的价值观
有人可以帮帮我吗?
答案 0 :(得分:1)
为什么你这么复杂?尝试更换案例
h.hours >= 0.08333 or (h.group in ('Adult'....) and h.hours>=0.13333))
或者如果您更喜欢使用case
h.hours >= case when h.group in ('Adult'....) then 0.13333 else 0.08333 end
答案 1 :(得分:1)
那不是
where h.hours >=
case when h.group in ('Adult','Zone','Family','Latino','Comedy','West') then 0.13333
else 0.08333
end