2014-07-15 13 views
0
2列

我有在SQL 使用最多的方法有问题时,我想运行此查询它给我这个错误如何使用最多的方法为

select max(id),oid,ofactid,obtype,obcount, 
     ofi,osaved,osum,ototalsum,oworkdate,max(lastdate) 
from [blokDB].[dbo].[tblOrdersBuy] 
where oid=1 

返回该错误

列“blokDB .dbo.tblOrdersBuy.ofactid'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

+0

(HTTP的可能重复[因为它不是在聚合函数或GROUP BY子句中的列包含在选择列表中无效]://计算器。 com/questions/5114112/column-is-invalid-in-the-select-list-because-it-is-not-contained-in-an-an-ag) – FuzzyTree

+0

edit for format。当你正在做一个最大值时,你正在做一个“聚合”,所有聚合都需要有一个组,以便数据库知道你想要找到最大值。你想要每个独特组合的oid,ofactid,obtype,obcount,ofi,osaved,osum,ototalsum,oworkdate的最大ID吗? – Twelfth

回答

0

我的猜测是,你想要一个给定的ID最近行的行。除了使用max()的,使用order bytop

select top 1 ob.* 
from [blokDB].[dbo].[tblOrdersBuy] ob 
where oid = 1 
order by lastdate desc; 
相关问题