2013-07-08 60 views
0

以下是我的查詢,但我似乎沒有SQL正確。基本上我試圖讓第7列顯示從一個單獨的表(C)計數,但我得到一個錯誤。任何幫助?查詢工作正常,沒有在select語句中的第二個計數,但我只是想讓第七列有來自另一個表的計數。SQL查詢優化secound count函數

select 
    distinct a.auditid, 
    a.iav, 
    c.VID as 'VMS ID', 
    c.severity as 'VMS Severity', 
    a.name, 
    count (distinct A.dnsname) as 'cat 1s', 
    count (distinct c.dnsname) as 'ccri' 
from 
    [dbo].[Enterprise 20130703] a 
    left join [dbo].[VMS_Retina] c on a.AuditID=c.auditid 
    inner join [CCRI 2013] c on a.dnsname=c.DNSName 
where 
    A.sevcode = 'category i' 
    AND A.DNSNAME NOT IN ('autodiscovery,'UNKNOWN') 
group by A.auditid, a.iav, a.name, c.VID, c.severity 
order by 6 desc 
+0

你會得到哪個錯誤? –

+0

什麼是錯誤?你能發佈一些樣本數據嗎? – StevieG

+1

你用'c'別名引用了2個不同的表格 – mirkobrankovic

回答

1

您已經使用c別名兩個不同的表,改變一個其它字符和查詢建議立即進行刪除做工精細:

select 
    distinct a.auditid, 
    a.iav, 
    c1.VID as 'VMS ID', 
    c1.severity as 'VMS Severity', 
    a.name, 
    count (distinct A.dnsname) as 'cat 1s', 
    count (distinct c2.dnsname) as 'ccri' 
from 
    [dbo].[Enterprise 20130703] a 
    left join [dbo].[VMS_Retina] c1 on a.AuditID = c1.auditid 
    inner join [CCRI 2013] c2 on a.dnsname = c2.DNSName 
where 
    A.sevcode = 'category i' 
    AND A.DNSNAME NOT IN ('autodiscovery','UNKNOWN') 
group by A.auditid, a.iav, a.name, c1.VID, c1.severity 
order by 6 desc 
+0

@mozztoff。 。 。如果這回答了這個問題,那麼你應該接受答案。 –

+0

哎呀..這樣一個簡單的錯誤..謝謝! – mozztoff

0

我不知道你用的是什麼DBMS,但與甲骨文有着鮮明在頂線上,所以可能是這樣的:

SELECT 
A.auditid, 
A.iav, 
A.VMS ID, 
A.VMS Severity, 
A.name, 
A.cat_1s, 
A.ccri 
FROM (
    SELECT 
     distinct a.auditid, 
     count (distinct A.dnsname) as 'cat_1s', 
     count (distinct c.dnsname) as 'ccri' 
     a.iav, 
     c.VID as 'VMS ID', 
     c.severity as 'VMS Severity', 
     a.name, 
    FROM 
     [dbo].[Enterprise 20130703] a 
     left join [dbo].[VMS_Retina] c on a.AuditID=c.auditid 
     inner join [CCRI 2013] c on a.dnsname=c.DNSName 
    where 
     A.sevcode = 'category i' 
     AND A.DNSNAME NOT IN ('autodiscovery','UNKNOWN') 
    group by A.auditid, a.iav, a.name, c.VID, c.severity 
    order by 6 desc 
) A