选择Max And Inner Join

时间:2017-07-06 08:28:27

标签: sql sql-server sql-server-2012

我有SQL Server 2012数据库,我需要查询数据库并获得与MAX相关的结果(Rule_ID)和MAX(CI_ID)

但我无法获得与MAX(CI_ID)相关的结果,所有CI_ID版本都在结果中。

USE CM_T01
SELECT Max_id, MAX(CIVersion), Netbios_Name0, RuleName, RuleDescription, prereifiedvalue, complianceState
FROM v_CI_CurrentComplianceStatus
INNER JOIN 
(
SELECT CI_ID,Rule_ID, Rulename,  RuleDescription,criteria, MAX(Rule_ID) OVER(PARTITION BY Rulename) AS Max_id
from v_cirules
where rulename like '%Account lockout duration%' AND RuleDescription like '%applicable%'
group by Rule_ID,RuleName, RuleDescription,CI_ID,Criteria) as v_CIRules 
ON v_CIRules.CI_ID = v_CI_CurrentComplianceStatus.CI_ID
INNER JOIN v_R_System 
ON v_R_System.ResourceID = v_CI_CurrentComplianceStatus.ItemKey
LEFT JOIN v_CICurrentRuleDetail 
ON v_CICurrentRuleDetail.CurrentComplianceStatusID = v_CI_CurrentComplianceStatus.CI_CurrentComplianceStatusID
where netbios_name0='TRISTSCCM-PS'
GROUP BY Netbios_Name0, RuleName, RuleDescription, prereifiedvalue, complianceState,v_cirules.CI_ID,v_CIRules.Max_id,Criteria

结果

Max_id  (No column name)    Netbios_Name0   RuleName    RuleDescription prereifiedvalue complianceState
16780130    4   TRISTSCCM-PS    OS Hardening: Account Lockout Policy - Account lockout duration Applicable /Account lockout duration Must equal to 10   NULL    1
16780130    8   TRISTSCCM-PS    OS Hardening: Account Lockout Policy - Account lockout duration Applicable /Account lockout duration Must equal to 10   NULL    1
16780130    12  TRISTSCCM-PS    OS Hardening: Account Lockout Policy - Account lockout duration Applicable /Account lockout duration Must equal to 10   NULL    1

1 个答案:

答案 0 :(得分:0)

var_dump()