日期:2014-05-17  浏览次数:20493 次

请高手查看一条SQL语句的问题 谢谢!在线等

select a.bnumber,a.total,a.cheakqty,b.barcode,b.boxnumber,b.carnumber,b.note from result a,miss b where a.bnumber='111' and a.bnumber=b.bnumber group by b.boxnumber  order by b.carnumber asc 


错误提示:

消息 8120,级别 16,状态 1,第 1 行
选择列表中的列 'result.bnumber' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。



该怎么改?  谢谢!

------解决方案--------------------
select a.bnumber,a.total,a.cheakqty,b.barcode,b.boxnumber,b.carnumber,b.note from result a,miss b where a.bnumber='111' and a.bnumber=b.bnumber order by b.carnumber asc 
------解决方案--------------------
用Group,一般要有聚合函数的,如按照boxnumber分组后,你要计算什么,count还是sum,然后除了在count或sum里的列都加到group中。

SELECT a.bnumber
,a.total
,a.cheakqty
,b.barcode
,b.boxnumber
,sum(b.carnumber)
,b.note
FROM result a
,miss b
WHERE a.bnumber = '111'
AND a.bnumber = b.bnumber
GROUP BY b.boxnumber,b.barcode,a.cheakqty,a.total,a.bnumber,b.note
ORDER BY b.carnumber ASC

------解决方案--------------------
select a.bnumber,a.total,a.cheakqty,b.barcode,b.boxnumber,b.carnumber,b.note
from result a,miss b 
where a.bnumber='111' and a.bnumber=b.bnumber 
group by a.bnumber,a.total,a.cheakqty,b.barcode,b.boxnumber,b.carnumber,b.note
order by b.carnumber asc   试试这样看可以不
------解决方案--------------------
不知道你想达到什么效果。
你8#得到的效果,和不加group by得到的是一样的
------解决方案--------------------
查询的列没有聚合函数的都要放在group by 那里去的。