本文介绍了迁移到SQL Server 2012时,MySQL GROUP BY不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我将我的Delphi应用程序从MySQL迁移到SQL Server2012.在MySQL中,我有以下查询:
I'm moving my Delphi application from MySQL to SQL server 2012. In MySQL I had this query:
SELECT *,(XS+S+M+L+XL+XXL+[1Size]+Custom) as Total FROM StockData
GROUP BY StyleNr,Customer,Color
ORDER BY StyleNr,Customer,Color
效果很好.但是在Microsoft SQL Server 2012中,该查询显示为
And it worked perfectly. But in Microsoft SQL Server 2012 this query says
如果我将查询更改为:
SELECT *,([XS]+[S]+[M]+[L]+[XL]+[XXL]+[1Size]+[Custom]) total
FROM [dbo].[stockdata]
GROUP BY ID,StyleNr,Customer,Color
ORDER BY StyleNr,Customer,Color
然后我收到此错误:
有什么想法吗?
这是表格的设计视图:
推荐答案
SQL Server正常工作.您必须将SELECT
列表中的所有项目都包含在GROUP BY
或聚合函数中:
SQL Server is working as expected. You must include all items in your SELECT
list in either a GROUP BY
or in an aggregate function:
SELECT *,(XS+S+M+L+XL+XXL+[1Size]+Custom) as Total
FROM StockData
-- GROUP BY ID,StyleNr,Customer,Color, XS,S,M,L,XL,XXL,[1Size],Custom
ORDER BY StyleNr,Customer,Color
或者您可以使用:
SELECT StyleNr,Customer,Color, SUM(XS+S+M+L+XL+XXL+[1Size]+Custom) as Total
FROM StockData
GROUP BY StyleNr,Customer,Color
ORDER BY StyleNr,Customer,Color;
这篇关于迁移到SQL Server 2012时,MySQL GROUP BY不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!