2016-03-01 52 views
-1

爲什麼我會收到此錯誤?在運行查詢時?爲什麼我不能按周分組?查詢 - 錯誤代碼1111 - 組功能無效使用

HAVING條款中是否存在問題?

Select 

CASE 

When 
min(date(trip.pick_up_time)) >= date(timestampadd(day,-7,now())) 
and min(date(trip.pick_up_time)) <= date(timestampadd(day,0,now())) 
Then 'Week 1' 


When 
min(date(trip.pick_up_time)) >= date(timestampadd(day,-14,now())) 
and min(date(trip.pick_up_time)) < date(timestampadd(day,-7,now())) 
Then 'Week 2' 

When 
min(date(trip.pick_up_time)) >= date(timestampadd(day,-21,now())) 
and min(date(trip.pick_up_time)) < date(timestampadd(day,-14,now())) 

Then 'Week 3' 

When 

min(date(trip.pick_up_time)) >= date(timestampadd(day,-29,now())) 
and min(date(trip.pick_up_time)) < date(timestampadd(day,-21,now())) 
Then 'Week 4' 

END AS WEEK 

from 

trip 

WHERE 

min(date(trip.pick_up_time)) > date(timestampadd(day,-28,now()))  
and min(date(trip.pick_up_time)) < date(timestampadd(day,0,now())) 

group by Week HAVING Week is not NULL 
+0

組不爲空 - 這到底是 – learncode

+0

@GiorgosBetsos使用這在哪裏? – learncode

+0

可能的重複[你可以GROUP BY與CASE當然後別名?](http://stackoverflow.com/questions/19096344/can-you-group-by-with-a-case-when-then-alias -name) – Marusyk

回答

0

恐怕你必須使用在GROUP全案聲明 ,如:按周HAVING周

select 
    case when 1=1 then 1 
     when 2=2 then 2 
    end as result 
from table 
group by 
    case when 1=1 then 1 
     when 2=2 then 2 
    end 
+0

這是不對的。 – learncode

+0

@learncode爲什麼?它不工作?請參閱http://stackoverflow.com/questions/19096344/can-you-group-by-with-a-case-when-then-alias-name – Marusyk

+0

@learncode我明白,這將是一個很大的查詢,但工程 – Marusyk

相關問題