楼主,你上面语句的语法明显错误.因为不包含在聚合函数中,也不包含在 GROUP BY 子句中的字段是不能出现在带有GROUP BY的查询当中的。若只用 select orderinfo0_.order_no from ORDER orderinfo0_
inner join CUSTOMER customer1_
on orderinfo0_.cust_code=customer1_.cust_code
where orderinfo0_.order_no='OR-00000019'
group by orderinfo0_.order_no
明显只有一条记录。
inner join CUSTOMER customer1_
on orderinfo0_.cust_code=customer1_.cust_code
where orderinfo0_.order_no='OR-00000019'
group by orderinfo0_.order_no
明显只有一条记录。
解决方案 »
- sqlserver提供哪三种服务?(急)
- 刚才看到SQL优化那偏`有个问题`
- 求一个总表与明细表的数量对比SQL写法!!!!!!!!!!!
- 求助:递归查询难题?
- SQL SERVER 2005到底应该怎么安装?
- 文件签收的存储过程
- bcp导入文本到另一台SQL数据库中
- 请问sqlserver2005里如何让表中的数据不排序?
- 怎么给一个字段两种排序?
- 在SQL 7.0 中 :create table #temp select * from works 错在那里?
- 如果在SQLServer里面获得错误信息(注:不是错误信息代码)
- MSSQL同一条记录同一个字段中,保存多个文件路径,如何分隔它们?
多谢,我试过你那个语句是可以的。不过可以探讨下下面两个问题
1。我也试过没有出现在group by和聚合函数中的字段也可以被查询。比如这句
select orderinfo0_.order_no as col_0_0_,
orderinfo0_.order_prefix as col_1_0_,
customer1_.cust_name as col_2_0_,
customer1_.cust_code as col_2_1_ from ORDER orderinfo0_
inner join CUSTOMER customer1_
on orderinfo0_.cust_code=customer1_.cust_code
where orderinfo0_.order_no='OR-00000019'
group by orderinfo0_.order_no,customer1_.cust_code
可以看到order_prefix 和cust_name都没有在group by和聚合函数中,但是查出的结果仍然是一条,是想要的结果。
2。按照select查询语句的处理顺序,是先根据where和having中的条件进行筛选,然后把筛选后的结果再根据group by的规定分组,按照这样的顺序,我的语句先找出来的结果应该只有一条
,进行groupby 后也应该只有一条的。不知道你是怎样的看法呢?
研究错误语句的结果意义不是很大