Author |
Topic |
Hommer
Aged Yak Warrior
808 Posts |
Posted - 2012-05-15 : 15:57:41
|
Hey, everyone,I have this select that is almost there. It gave me the avg.Select avg(datediff(d,convert( datetime, DateAcknow , 101), convert(datetime, DateResolv, 101))) avg_days,Subcategoryfrom ... where ... group by SubcategoryHowever, some records have DateAcknow > DateResolv, so the business logic calls if that is the case use 0, instead of negative days.I have tried next two but none is working:case when(datediff(d,convert(datetime, DateAcknow , 101), convert(datetime, DateResolv, 101)))<0 then avg(datediff(d,convert( datetime, DateResolv , 101), convert(datetime, DateResolv, 101))) --if ackdate is later than resolv else avg(datediff(d,convert( datetime, DateAcknow , 101), convert(datetime, DateResolv, 101))) end avg_days,calllog.Subcategory avg(case when(datediff(d,convert(datetime, DateAcknow , 101), convert(datetime, DateResolv, 101)))<0 then datediff(d,convert( datetime, DateResolv , 101), convert(datetime, DateResolv, 101)) else datediff(d,convert( datetime, DateAcknow , 101), convert(datetime, DateResolv, 101))) end avg_days,calllog.Subcategory Thanks! |
|
malpashaa
Constraint Violating Yak Guru
264 Posts |
Posted - 2012-05-15 : 18:54:15
|
Try this:AVG(CASE WHEN CONVERT(DATETIME, DateAcknow , 101) > CONVERT(DATETIME, DateResolv, 101) THEN 0 ELSE DATEDIFF(D, CONVERT(DATETIME, DateAcknow , 101), CONVERT(DATETIME, DateResolv, 101)) END) AS avg_days For us, there is only the trying. The rest is not our business. ~T.S. EliotMuhammad Al Pasha |
 |
|
Hommer
Aged Yak Warrior
808 Posts |
Posted - 2012-05-17 : 10:53:47
|
What works!Thank you!!! |
 |
|
|
|
|