2014-03-27 50 views
0

我有两个查询 1-> select top 10 * from transaction_tbl order by transactID desc这是我使用从我的交易表 2->同时连接两个查询得到聚合函数错误

select avg(datediff(mi,t.dtime, t.PAICdate)) as 
Average from transaction_tbl t where locid=6 

此查询我以最后10交易使用该获得两个日期之间的平均时间differnce .. 这两个查询工作的罚款..
我想只有最后的10次交易平均时间differnce

,所以我尝试加入这个两个查询是这样的:

select top 10 avg(datediff(mi,t.dtime, t.PAICdate)) as Average 
from transaction_tbl t 
where locid = 6 
group by transactID 
order by transactID desc; 

,但我得到的结果是这样的: enter image description here

我想要得到的最后10个记录

+1

。 。请编辑问题并添加样本数据和期望的结果。目前尚不清楚你想要做什么。 –

回答

1

使用这样的嵌套查询:

select avg(datediff(mi,t.dtime, t.PAICdate)) as Average 
from (
    select top 10 * from transaction_tbl where locid=6 order by transactID desc 
) t 
+0

这是工作正常..先生,如果我得到的平均东西像小于12.5然后我想显示12或如果我得到的平均更大12.5然后我想显示13 ..这是可能的吗? – user3106114

+0

当然,只需使用ROUND()函数,例如:'select round(12.5,0)' – Dan

0

我觉得你TransactId要组总平均值为:

select top 10 avg(datediff(mi,t.dtime, t.PAICdate)) as Average 
from transaction_tbl t 
where locid = 6 
group by transactID 
order by transactID desc; 

您的查询失败,因为TransactID未聚合后知道的。

+0

这次我得到10条记录的结果..我想得到总的平均时间在几分钟内 – user3106114