2016-09-07 180 views
-1

我试图找到与序号关联的最后一个部署,并且没有获取最新日期,我得到了一个特定的多行序列号。当我输入以下内容时,出现错误1241:sql错误(1241):操作数应该包含1列 - 按日期排序

select deployment, device_serial_number from action_archive 
where (.....) 
group by device_serial_number 
order by 'date' 
+1

添加完整的错误消息 – Jens

+1

为什么你使用'group by'而没有任何聚合? – Siyual

+0

为什么日期用单引号括起来?单引号意味着字符串和顺序将需要一个列或表达式。 – Shadow

回答

0

一种方法使用子查询。它看起来像这样:

select aa.* 
rom action_archive aa 
where (.....) and 
     `date` = (select max(aa2.date) 
       from action_archive aa2 
       where . . . and 
         aa2.device_serial_number = aa.device_serial_number 
       ); 
0

也许问题是“'date'”中的引号。试试这个:

SELECT deployment, 
    device_serial_number 
FROM action_archive 
WHERE (.....) 
GROUP BY device_serial_number 
ORDER BY date 

另外,我觉得你可能有问题与GROUP BY,也许你应该添加“部署”也有。

相关问题