SQL 按问题分组 SQL Server 2005 CE

Posted

技术标签:

【中文标题】SQL 按问题分组 SQL Server 2005 CE【英文标题】:SQL Group By question SQL Server 2005 CE 【发布时间】:2010-10-10 08:05:08 【问题描述】:

我在使用 sql server 2005 ce 的移动应用程序中使用的 sql 查询有问题。我对t-sql不太擅长,所以这个查询有问题

SELECT TP.ID_TASK_MASTER, TP.ID_PROBLEM, TP.ID_TASK_PROBLE, P.DS_PROBLEM, 
       TP.SW_HASOK, TP.SW_HASNOK, TP.SW_HASTOK, TP.SW_HASVALUE,  
       TP.NO_VALUE1, TP.NO_VALUE2 
FROM TASK_PROBLEMS TP 
  INNER JOIN PROBLEMS P 
    ON TP.ID_PROBLEM = P.ID_PROBLEM  
GROUP BY P.DS_PROBLEM,TP.ID_TASK_MASTER, TP.ID_PROBLEM, TP.ID_TASK_PROBLE 
HAVING TP.ID_TASK_MASTER = @P_IDTASKMASTER

我尝试做的是在 ds_problem 字段上进行分组,得到这样的错误:

"在聚合和分组表达式中,SELECT 子句只能包含聚合和分组表达式。[Select 子句 = TP,SW_HASOK]"

那么我做错了什么?谢谢..

【问题讨论】:

【参考方案1】:

我想你的意思是

SELECT TP.ID_TASK_MASTER, TP.ID_PROBLEM, TP.ID_TASK_PROBLE, P.DS_PROBLEM, 
       TP.SW_HASOK, TP.SW_HASNOK, TP.SW_HASTOK, TP.SW_HASVALUE,  
       TP.NO_VALUE1, TP.NO_VALUE2 
FROM TASK_PROBLEMS TP 
  INNER JOIN PROBLEMS P 
    ON TP.ID_PROBLEM = P.ID_PROBLEM  
WHERE TP.ID_TASK_MASTER = @P_IDTASKMASTER
ORDER BY P.DS_PROBLEM,TP.ID_TASK_MASTER, TP.ID_PROBLEM,TP.ID_TASK_PROBLE

【讨论】:

以上是关于SQL 按问题分组 SQL Server 2005 CE的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2012 查询 - 按 [重复] 分组

SQL Server:按字符串连接分组

sql server 增加分组序号

SQL Server:按分组列求和并按另一列排序

如何计算 SQL Server 中按日期和用户分组的条目之间的平均时间?

更新表以按分组列显示总计 SQL Server 2008 R2