未包含在汇总函数中/ GROUP BY AND最大日期不显示最新日期

时间:2019-05-31 21:48:57

标签: sql sql-server

我被困在这里,您的帮助将不胜感激。根据您在下面看到的代码: 我有一些条件的子查询。具体来说,以下内容:

AND OwnedByTeamJ='C - O Review'
AND  OwnedByTeamJ is null

我想从子查询中获得结果, 对它们进行另一个选择,因为我要的只是表格中列出的最新日期。如您在图片中看到的,我希望能够提取日期最高的行#3,并且该行的行号为null(我猜!因为那里没有值)。 现在的问题: 1首先,代码起作用了,我看到了所有记录!但是,它没有选择最新日期

2-突然,它停止工作并看到此错误: 选择列表中的“ tt.IncidentID”列无效,因为它既不包含在聚合函数中也不在GROUP BY子句中。

select 
    distinct max(LastModifiedDateTimeJ),
    incidentID,
    EffecRequestStatus,
    OwnedByTeamJ
From (
    select   
      EffecRequestStatus,
      IncidentID,
      LastModifiedDateTimeJ,
      OwnedByTeamJ,
      DetailsJ,
      Status,
      OwnedByTeam 
    from IncidentView
       where 
       CAST(CreatedDateTime as  DATE) >='05-01-2019'
       AND JournalTypeName like '%Journal - Note%'
       AND OwnedByTeamJ='C - O Review'
       AND  OwnedByTeamJ is null

    group by  
        EffecRequestStatus,
        IncidentID,
        LastModifiedDateTimeJ,
        OwnedByTeamJ,
        DetailsJ,
        Status,
        OwnedByTeam
) as tt
where 
    tt. RequestStatus not in ('Submission','P-C submission','C Review')

数据示例如下所示,但我的表中的列比此处列出的要多:

enter image description here

2 个答案:

答案 0 :(得分:0)

如果您希望得到不为空的结果,请尝试以下操作:

CITY          STATE ZIP
------------- ----- -----
GRANADA HILLS CA    91344
SIMI VALLEY   CA    93065
BUENA PARK    CA    90621
SHERMAN OAKS  CA    91423
GLENDALE      CA    91203
VENTURA       CA    93002
HAWTHORNE     CA    90250
PASADENA      CA    91185
...

答案 1 :(得分:0)

1)这些条件不应共存:

AND OwnedByTeamJ='C - O Review'
AND  OwnedByTeamJ is null

...因为这两件事永远不会同时发生,所以您将得到一个空结果集。我想你想要的是 AND (OwnedByTeamJ='C - O Review' or OwnedByTeamJ is null)

2)您提到的错误似乎与您向我们显示的查询不一致。您是否尝试过在外部制作另一个group by

3)将distinctmaxsumcount等任何聚合函数一起使用是没有意义的。

4)只要在group by中包含EffecRequestStatus,您将得到3行,而不是1行,因为所有3行的EffecRequestStatus值都不同。如果您只想查看一行,则必须将其从group by中删除,因此也要从select中删除。