Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 按从组中选择字段_Sql_Sql Server - Fatal编程技术网

Sql 按从组中选择字段

Sql 按从组中选择字段,sql,sql-server,Sql,Sql Server,我已完成此查询,但由于group by子句,无法选择所有字段 如何重新格式化查询,使其检索所有信息? 我尝试按每个字段分组,但其中一些是文本 SELECT p.Pato_Id, p.Description, p.Dated a.Assessment_Id, a.Recommendation, Question1 = MAX(CASE WHEN r.Question_Id = 0 THEN r.Answer_Id END), Questi

我已完成此查询,但由于group by子句,无法选择所有字段

如何重新格式化查询,使其检索所有信息? 我尝试按每个字段分组,但其中一些是文本

SELECT p.Pato_Id, p.Description, p.Dated a.Assessment_Id, a.Recommendation, Question1 = MAX(CASE WHEN r.Question_Id = 0 THEN r.Answer_Id END), Question2 = MAX(CASE WHEN r.Question_Id = 1 THEN r.Answer_Id END) FROM Patos p OUTER APPLY ( SELECT TOP 1 a.Assessment_Id , a.Recommendation FROM Assessments a WHERE a.Pato_Id = p.Pato_Id ORDER BY a.Dated DESC ) a JOIN Replies r ON a.Assessment_Id = r.Assessment_Id GROUP BY p.Pato_Id
尝试将文本字段强制转换为nvarcharmax,然后包括group by中的所有字段,例如:

SELECT 
    p.Pato_Id,
    CAST(p.Description AS nvarchar(max)),
    p.Dated,
    a.Assessment_Id,
    a.Recommendation,
    Question1 = MAX(CASE WHEN r.Question_Id = 0 THEN r.Answer_Id END),
    Question2 = MAX(CASE WHEN r.Question_Id = 1 THEN r.Answer_Id END)
FROM Patos p
OUTER APPLY (
    SELECT TOP 1 
        a.Assessment_Id
        , a.Recommendation
    FROM Assessments a
    WHERE a.Pato_Id = p.Pato_Id
    ORDER BY a.Dated DESC
    ) a
JOIN Replies r
ON a.Assessment_Id = r.Assessment_Id
GROUP BY 
    p.Pato_Id,
    CAST(p.Description AS nvarchar(max)),
    p.Dated,
    a.Assessment_Id,
    a.Recommendation
哪个是文本栏?假设是p.Description,则可以执行以下操作:

SELECT sub.*, t.Description FROM
(SELECT 
    p.Pato_Id as Pato_Id,
    t.Description as Description,
    t.Dated as Dated,
    a.Assessment_Id as Assessment_Id,
    a.Recommendation as Recommendation,
    Question1 = MAX(CASE WHEN r.Question_Id = 0 THEN r.Answer_Id END),
    Question2 = MAX(CASE WHEN r.Question_Id = 1 THEN r.Answer_Id END)
FROM Patos p
OUTER APPLY (
    SELECT TOP 1 
        a.Assessment_Id
        , a.Recommendation
    FROM Assessments a
    WHERE a.Pato_Id = p.Pato_Id
    ORDER BY a.Dated DESC
    ) a
JOIN Replies r
ON a.Assessment_Id = r.Assessment_Id
GROUP BY 
    p.Pato_Id,
    a.Assessment_Id,
    a.Recommendation) AS sub
INNER JOIN Patos t ON
    t.Pato_Id = sub.Pato_Id
如果您的团队也被推荐为:

GROUP BY 
    p.Pato_Id,
    a.Assessment_Id

您也可以加入该表。

当我尝试通过将所有字段添加到组中时,会出现以下错误:文本、ntext和图像数据类型无法进行比较或排序,除非使用IS NULL或LIKE运算符。我无法执行此操作。我必须按原样归还一切。我想用一种方法将查询拆分为两个选择,但我不知道该怎么做。另一种方法是将分组的查询连接回其他值的查询?是的,我就是这么想的。我该怎么做呢?更新了一些选项当我放置内部连接时,它显示:关键字“INNER”附近的语法不正确