2012-03-07 2 views
0

가장 최근의 검색 날짜에 대한 쿼리를 시도하고 있습니다. 가장 최근의 날짜는 2012 년 3 월 5 일과 2012 년 3 월 1 일입니다. 2012 년 3 월 5 일, 3 월 5 일에 자동 작업이 필요하므로 새 검사가 실행될 때마다 쿼리가 최신 날짜를 가져옵니다.가장 최근 날짜 선택 + 내부 참여

또한 IP로 두 테이블에 합류합니다. 아래 쿼리하고 오류가 발생하고있다 "SQL 구문을 확인하시기 바랍니다이 집계 함수 나 GROUP BY 절 중 하나에 포함되지 않기 때문에 열 qryReportsCondensedPatchesAggregate.ScanName는 선택 목록에서 유효하지 않습니다.."

SELECT qryReportsCondensedPatchesAggregate.ScanName, 
    qryReportsCondensedPatchesAggregate.pspplMSSeverity, 
    qryReportsCondensedPatchesAggregate.smachIPAddress, 
    qryReportsScanSummaryWithDetailsAggregate.PatchMissing, 
    MAX(qryReportsCondensedPatchesAggregate.ScanDate) 
FROM qryReportsCondensedPatchesAggregate 
INNER JOIN qryReportsScanSummaryWithDetailsAggregate 
ON qryReportsCondensedPatchesAggregate.smachIPAddress=qryReportsScanSummaryWithDetailsAggregate.smachIPAddress 
WHERE qryReportsCondensedPatchesAggregate.ScanName LIKE '%mgmt%' 
    AND qryReportsCondensedPatchesAggregate.ScanDate>= dateadd(day,-30,getdate()) 
ORDER BY qryReportsCondensedPatchesAggregate.ScanDate DESC 

편집 : 여기에 반환되는 내용의 일부 샘플 데이터는 다음과 같습니다

Column1 smachIPAddress ScanName pspplMSSeverity PatchMissing 

3/5/2012 15:24 162.1.1.1 Mgmt Servers OU 0 1 
3/5/2012 15:24 162.1.1.1 Mgmt Servers OU 0 1 
3/5/2012 15:24 1162.1.1.1 Mgmt Servers OU 0 1 
3/5/2012 15:24 162.1.1.1 Mgmt Servers OU 0 2 
3/5/2012 15:24 162.1.1.1 Mgmt Servers OU 0 1 
3/1/2012 17:29 162.1.1.1 Mgmt Servers OU 0 2 
3/1/2012 17:29 162.1.1.1 Mgmt Servers OU 0 4 
3/1/2012 17:29 162.1.1.1 Mgmt Servers OU 0 2 
3/1/2012 17:29 162.1.1.1 Mgmt Servers OU 0 3 
3/1/2012 17:29 162.1.1.1 Mgmt Servers OU 0 1 
3/1/2012 17:29 162.1.1.1 Mgmt Servers OU 0 3 

첫 번째 테이블 :

table_name ordinal_position column_name data_type is_nullable character_maximum_length 
qryReportsCondensedPatchesAggregate 1 MachineGroup nvarchar YES 276 
qryReportsCondensedPatchesAggregate 2 ScanID int NO 
qryReportsCondensedPatchesAggregate 3 ScanUser nvarchar YES 4000 
qryReportsCondensedPatchesAggregate 4 ScanDate datetime NO 
qryReportsCondensedPatchesAggregate 5 ScanName nvarchar YES 255 
qryReportsCondensedPatchesAggregate 6 itemType int YES 
qryReportsCondensedPatchesAggregate 7 smachID int NO 
qryReportsCondensedPatchesAggregate 8 smachName nvarchar NO 255 
qryReportsCondensedPatchesAggregate 9 smachIPAddress nvarchar YES 39 
qryReportsCondensedPatchesAggregate 10 smachDomainName nvarchar YES 255 
qryReportsCondensedPatchesAggregate 11 smachIPDecimal float YES 
qryReportsCondensedPatchesAggregate 12 smachAnnotation ntext YES 1073741823 
qryReportsCondensedPatchesAggregate 13 smachNotFoundReasonErrorNum smallint YES 
qryReportsCondensedPatchesAggregate 14 smachServerType int YES 
qryReportsCondensedPatchesAggregate 15 mmOSID int YES 
qryReportsCondensedPatchesAggregate 16 patchBulletinID nvarchar NO 255 
qryReportsCondensedPatchesAggregate 17 patchBulletinURL nvarchar YES 4000 
qryReportsCondensedPatchesAggregate 18 patchQNumbers nvarchar NO 255 
qryReportsCondensedPatchesAggregate 19 patchLevel int YES 
qryReportsCondensedPatchesAggregate 20 pspplMSSeverity int YES 
qryReportsCondensedPatchesAggregate 21 pspplCriticality int YES 
qryReportsCondensedPatchesAggregate 22 pspplAnnotation nvarchar YES 4000 
qryReportsCondensedPatchesAggregate 23 prodID int NO 
qryReportsCondensedPatchesAggregate 24 spplspID int NO 
qryReportsCondensedPatchesAggregate 25 scanType int YES 

2 테이블 : 당신이 사용하는 경우

table_name ordinal_position column_name data_type is_nullable character_maximum_length 
qryReportsScanSummaryWithDetailsAggregate 1 ScanID int NO 
qryReportsScanSummaryWithDetailsAggregate 2 scanType int YES 
qryReportsScanSummaryWithDetailsAggregate 3 ScanName nvarchar YES 255 
qryReportsScanSummaryWithDetailsAggregate 4 ScanDate datetime NO 
qryReportsScanSummaryWithDetailsAggregate 5 ScanUser nvarchar YES 4000 
qryReportsScanSummaryWithDetailsAggregate 6 consoleID int YES 
qryReportsScanSummaryWithDetailsAggregate 7 consoleName nvarchar YES 255 
qryReportsScanSummaryWithDetailsAggregate 8 smachName nvarchar NO 255 
qryReportsScanSummaryWithDetailsAggregate 9 smachIPAddress nvarchar YES 39 
qryReportsScanSummaryWithDetailsAggregate 10 scantName nvarchar YES 255 
qryReportsScanSummaryWithDetailsAggregate 11 FirstPatchGroupName nvarchar YES 255 
qryReportsScanSummaryWithDetailsAggregate 12 CountPatchGroups int YES 
qryReportsScanSummaryWithDetailsAggregate 13 smachAgent smallint NO 
qryReportsScanSummaryWithDetailsAggregate 14 smachDomainName nvarchar YES 255 
qryReportsScanSummaryWithDetailsAggregate 15 smachIPDecimal float YES 
qryReportsScanSummaryWithDetailsAggregate 16 smachID int NO 
qryReportsScanSummaryWithDetailsAggregate 17 smachListType int YES 
qryReportsScanSummaryWithDetailsAggregate 18 ScanXMLVersion nvarchar YES 50 
qryReportsScanSummaryWithDetailsAggregate 19 ScanXMLDate datetime YES 
qryReportsScanSummaryWithDetailsAggregate 20 itemLanguageID nvarchar YES 4 
qryReportsScanSummaryWithDetailsAggregate 21 PatchFoundOrInstalled int YES 
qryReportsScanSummaryWithDetailsAggregate 22 PatchMissing int YES 
qryReportsScanSummaryWithDetailsAggregate 23 ServicePackMissing int YES 
qryReportsScanSummaryWithDetailsAggregate 24 CountofMachinesScanned int NO 
qryReportsScanSummaryWithDetailsAggregate 25 CountofMachinesNotScanned int NO 
qryReportsScanSummaryWithDetailsAggregate 26 TotalMachines int YES 
qryReportsScanSummaryWithDetailsAggregate 27 ScanFoundPatches int YES 
qryReportsScanSummaryWithDetailsAggregate 28 ScanMissingPatches int YES 
qryReportsScanSummaryWithDetailsAggregate 29 ScanServicePackMissing int YES 
qryReportsScanSummaryWithDetailsAggregate 30 CountOfGroups int YES 
qryReportsScanSummaryWithDetailsAggregate 31 grpName nvarchar YES 255 
+7

사용 별칭 것입니다 !!!! –

답변

2

하면 오류가 당신에게 문제를 말하고있다 Aggregate 기능 MAX(),등, 집계를 사용하지 않는 필드는 GROUP BY에 포함되어야합니다.

다음은 쿼리는 별칭과 같은 외모와 GROUP BY

SELECT CPA.ScanName, 
    CPA.pspplMSSeverity, 
    CPA.smachIPAddress, 
    SDA.PatchMissing, 
    MAX(CPA.ScanDate) 
FROM qryReportsCondensedPatchesAggregate CPA 
INNER JOIN qryReportsScanSummaryWithDetailsAggregate SDA 
    ON CPA.smachIPAddress=SDA.smachIPAddress 
WHERE CPA.ScanName LIKE '%mgmt%' 
    AND CPA.ScanDate>= dateadd(day,-30,getdate()) 
GROUP BY CPA.ScanName, CPA.pspplMSSeverity, CPA.smachIPAddress 
    , SDA.PatchMissing, CPA.ScanDate 
ORDER BY CPA.ScanDate DESC 
+0

응답 해 주셔서 감사합니다. "SQL 문을 확인하십시오."qryReportsCondensedPatchesAggregate.ScanDate "열은 집계 함수 나 GROUP BY 절에 포함되어 있지 않기 때문에 ORDER BY 절에 유효하지 않습니다." – Ben

+0

그러면 GROUP BY 절에도 추가해야합니다. 나는 내 대답을 편집했다. – Taryn

+0

감사합니다. 지금 표시됩니다. 그러나 나는 2012 년 3 월 5 일의 최신 날짜를 얻지 못하고 있습니다. 나는 또한 3/1/2012을 아직도 얻고있다. 이것에 대한 MAX 집계 함수를 사용하여 잘못된 트랙에 있습니까? – Ben

관련 문제