首页 > 解决方案 > SQL 查询没有结果

问题描述

我有一个 Select 语句,它根据最大日期获取项目。它可以工作,但这些是从 asp.net 控件中选择的值,其中一个控件是多选列表框 在此处输入图像描述

如您所见,DynamicAtrributeID 937766 显示一次: 在此处输入图像描述

我需要它来显示 937766 中的所有行以及可能只有一行的其他行。这可能吗

SELECT     VotingValueDynamicId, 
             DecisionValueID, 
             DynamicAttributeID, 
             VotingValue, 
             DecisionSurveyID, 
             VALUEDATEUPDATED, 
             RECORDSTATUS, 

FROM         Adjudicate.ONCOLOGY_DynamicDecisionValuesForCaseManager AS a
WHERE     (VALUEDATEUPDATED =
                          (SELECT     MAX(VALUEDATEUPDATED) AS Expr1
                            FROM        Adjudicate.ONCOLOGY_DynamicDecisionValuesForCaseManager AS b
                            WHERE      (a.DecisionValueID = DecisionValueID) AND a.DynamicAttributeID = DynamicAttributeID) ) AND (RECORDSTATUS <> 'D')

标签: sqlsql-serversql-server-2012

解决方案


在显示的示例中,DynamicAtrributeID = 937766 的所有行在 VALUEDATEUPDATED 上都有不同的值,因此查询显示该 DynamicAtrributeID 的一行,因为这就是您正在执行的操作,过滤并仅获取具有最大 VALUEDATEUPDATED 的行。换句话说,如果您按他的 max(VALUEDATEUPDATED) 进行过滤,则 DynamicAtrributeID 不能获得超过一行。


推荐阅读