2017-07-02 31 views
0

訪問2013 SQL。計算由其他值分組的不同對值

我有2個表,我加入了一個共享的「ID」字段。

我想要一個不同的fld1 + fld2值分組按書和名稱。

如何在Access 2013 SQL中執行此操作。我沒有任何東西在嘗試2小時後不會產生語法錯誤或其他聚合錯誤。

實施例的數據:

Table1 
ID, Name 
1, "John" 
2, "John" 
3, "John" 
1, "Tom" 
3, "Tom" 
3, "Jack" 


Table2 
ID, Book, Fld1, Fld2 
1, "A", 1, 1 
2, "A", 1, 2 
2, "A", 1, 2 
1, "B", 1, 1 
2, "B", 1, 3 
3, "B", 1, 3 

預期的結果集:

Book, Name, Count() 
A, John, 2 
A, Tom, 1 
A, Jack, 0 
B, John, 2 
B, Tom, 2 
B, Jack, 1 

感謝。

+0

樣本數據和預期的結果將真正幫助。舉個例子,你說你想用'id1'和'id2'來分組。但是,您實際上顯示的是按「fld1」和「fld2」分組的數據。什麼是獨特的組合計數應該是。 –

+0

目前還不清楚這兩個表是如何相關的。我想他們有一個共同的'id'?這將是非常罕見的,但是'id2',table1中唯一的其他字段似乎不是鏈接。我有權懷疑這兩張表中的「id」是什麼嗎? –

+0

您的示例數據沒有意義。沒有表格有兩列'fld1','fld2'。 –

回答

1

使數據不同的聚合前:

select id2, id3, count(*) 
from 
(
    select distinct t1.id2, t2.id3, t2.fld1, t2.fld2 
    from table1 t1 
    join table2 t2 on t2.id = t1.id 
) t 
group by t.id2, t.id3; 
0

這似乎是一個基本JOINGROUP BY

select t2.fld1, t2.fld2, count(*) 
from t1 inner join 
    t2 
    on t1.id = t2.id 
group by t2.fld1, t2.fld2; 

我不知道你所說的「獨特組合」的意思。

+0

嗨戈登。我想計算表2中fld1和fld2的唯一組合。我將更新以提供示例數據和預期結果集。對不起,我忘了。 – user2184214

+0

謝謝戈登。我該怎麼做才能讓你得到你的幫助? – user2184214

+0

@ user2184214。 。 。你應該鼓勵並接受你認爲值得的答案。你應該*不要*肆意上傳答案 - 他們會被堆棧溢出拒絕。謝謝你的感激。乾杯。 –