where item.itemnum=inventory.itemnum
and inventory.location='DYB'
and item.in1='D/MTD/MRM'
GROUP BY ITEM.ITEMNUM
提示错误是NOT A GROUP BY EXPRESSION
答案:你用了GROUP BY 按 ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何显示呢,比如下面所示
A B
1 abc
1 bcd
1 asdfg
select A,B from table group by A
你说这样查出来是什么结果,
A B
abc
1 bcd
asdfg
右边3条如何变成一条,所以需要用到聚合函数,比如
select A,count(B) 数量 from table group by A
这样的结果就是
A 数量
1 3
group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面
讨论:MySQL和Oracle对group by的解析是不一样的!mysql:
SELECT s.SName, sc.COUNT(CID) c
FROM SC sc JOIN S s ON sc.SID = s. SID
GROUP BY s.SID
HAVING c = ( SELECT COUNT(*) FROM C )
oracle:
SELECT s.SID, s.SName, sc.COUNT(CID) c
FROM SC sc JOIN S s ON sc.SID = s.SID
GROUP BY s.SID, s.SName
HAVING c = ( SELECT COUNT(*) FROM C )
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://plat.delit.cn/) | Powered by Discuz! X3.2 |