2016-02-10 57 views
0

我試圖寫在MS Access 2010查詢,但它不是讓伯爵(不同的OrderID)語法在那裏,我很容易能夠在甲骨文寫。計數(不同字段名)在訪問查詢

Select BrandID, Count(Distinct OrderID), Count(Distinct ModelID) 
From ordertable 
    Where Trunc(Pur_Date) Between '01-Feb-2015' And '09-Feb-2015' 
Group By BrandID 
Order by BrandID 

表結構:

OrderID BrandID ModelID 
    1  abc  a 
    1  abc  b 
    1  abc  c 
    2  def  f 
    3  ghi  a 
    3  ghi  c 
    4  abc  g 
    4  abc  b 

請在實現這一幫助。

+0

是的,我試過相同,但它僅適用或者我是不是能夠計算出路時,我想這樣做: - 選擇Count(不同的OrderID) 從ordertable 凡TRUNC(Pur_Date)之間「 01 - 2月 - 2015' 年和09 -Feb-2015' 只有一個領域,但我希望通過組然後根據該BrandID顯出了獨特的計數。 請幫忙。 –

+0

@SankarRaj這使訂單ID算作5品牌「ABC」,我想這是2 –

回答

0

How do I count unique items in field in Access query? Access沒有一個COUNT DISTINCT運營商。解決方法是在子查詢中對SELECT DISTINCT並計算結果。每列 - 而且,因爲你指望兩個獨立的列,必須從兩個獨立的子查詢計數。要做到這一點,最簡單的方法是使用一個UNION用0佔位,再總結的結果:

select BrandID, sum(orders), sum(models) 
from (
    select BrandID, count(OrderID) orders, 0 models 
    from (
     select distinct BrandID, OrderID 
     from ordertable 
     where Trunc(Pur_Date) between '01-Feb-2015' and '09-Feb-2015' 
    ) x1 
    group by BrandID 
    union all 
    select BrandID, 0 orders, count(ModelID) models 
    from (
     select distinct BrandID, ModelID 
     from ordertable 
     where Trunc(Pur_Date) between '01-Feb-2015' and '09-Feb-2015' 
    ) x2 
    group by BrandID 
) o 
group by BrandID 

在SQL Server中運行這個查詢的Here's a SQL Fiddle demo

+0

似乎它會幫助:) 將檢查並確認 –

+0

謝謝@Ic這就像魅力:),只是另一個查詢,如果我有兩個三個字段添加,然後我必須創建更多的x3,x4子查詢權利? –

+0

@SK很高興它的工作。是的,如果你有多個字段只需添加更多的子查詢到工會 –

0

希望這將有助於..

SELECT d.BrandID, Count(d.OrderID), Count(d.ModelID) 
FROM (select distinct BrandID, OrderID,ModelID from ordertable 
     Where Trunc(Pur_Date) Between '01-Feb-2015' And '09-Feb-2015') as d 
Group By d.BrandID 
Order by d.BrandID 

result

+0

這使訂單ID算作5品牌「ABC」,我想這是2 –

+0

這是沒有運行。 –

+0

已編輯請現在檢查 – Sachu