2016-04-13 21 views
0

3 saatten beri, grupları gruplamadan farklı sütunları saymaya çalışıyorum. Birleştirme veya alt seçim sorguları ile denedim, ancak SQL'de yeni olduğum için nasıl yapılacağını çözmedim. Ben de Hedef Kimliği, Proje kimliği ve bir SQL sorguda Kampanya Projesi kimliğini saymak ve nasılSQL - Gruplandırmadan say

SELECT [Destination ID], 
     [ProjectID], 
     [Campaign ProjectId] 
FROM Raw_Data; 

Tablo her bir kimlik ibraz:

Yani burada benim SQL sorgusu olur. Ben MS Access kullanıyorum

Screenshot

: çıktı böyle görünmeli İşte bir örnek

. Bazıları bana yardımcı olabilirse, bu harika olurdu.

Çok teşekkürler!

+5

Sorunuzu anlamak çok zor. Belki de sizin neyin peşinde olduğunuzu bize göstermek yerine, teknikten ("gruplaşmadan say") bahsediyor olmanızdır. Bazı örnek kayıtları ve beklenen sonucu göster ve memnuniyetle yardımcı oluruz. –

+0

"Her Kimlik"? Her iki Hedef Kimliği, Proje Kimliği ve Kampanya ProjectId? Örnek tablo verilerini ve beklenen sonucu bize göster! – jarlh

+0

Soruyu anlamadan, yalnızca saymak istiyorsanız, SELECT count (*) FROM Raw_Data; ' –

cevap

1

seni doğru anlamış eğer, bu deneyebilirsiniz:

yeni Access sürümlerinde
SELECT 
    [Destination ID], 
    (SELECT COUNT([Destination ID]) 
     FROM Raw_Data AS T2 
     WHERE T2.[Destination ID] = T1.[Destination ID]) AS DestCount, 
    [ProjectID], 
    (SELECT COUNT([ProjectID]) 
     FROM Raw_Data AS T3 
     WHERE T3.[ProjectID] = T1.[ProjectID]) AS ProjectCount, 
    [Campaign ProjectId], 
    (SELECT COUNT([Campaign ProjectId]) 
     FROM Raw_Data AS T4 
     WHERE T4.[Campaign ProjectId] = T1.[Campaign ProjectId]) AS CampaignCount 
FROM Raw_Data AS T1; 

DÜZENLEME

deneyebilirsin:

SELECT 
    T1.[Destination ID], 
    T2.[DestCount], 
    T1.[ProjectID], 
    T3.[ProjectCount], 
    T1.[Campaign ProjectId], 
    T4.[CampaignCount] 
FROM (((Raw_Data AS T1 
     INNER JOIN 
     (
     SELECT [Destination ID], COUNT([Destination ID]) AS DestCount 
     FROM Raw_Data 
     GROUP BY [Destination ID] 
     ) 
     AS T2 ON 
     T1.[Destination ID] = T2.[Destination ID]) 
     INNER JOIN 
     (
     SELECT [ProjectID], COUNT([ProjectID]) AS ProjectCount 
     FROM Raw_Data 
     GROUP BY [ProjectID] 
     ) 
     AS T3 
     ON T1.[ProjectID] = T3.[ProjectID]) 
     INNER JOIN 
     (
     SELECT [Campaign ProjectID], COUNT([Campaign ProjectID]) AS CampaignCount 
     FROM Raw_Data 
     GROUP BY [Campaign ProjectID] 
     ) 
     AS T4 
     ON T1.[Campaign ProjectID] = T4.[Campaign ProjectID]) 

Bunu test edemez Daha yeni Access sürümlerinde, bunun işe yarayabileceğini okuyun.

+0

Çok teşekkürler Nik Bo. Bu tam ihtiyacım olan şey. Ama masam çok büyük ve sorgu yaşlandı. Ayrıca başka bir çözüm var mı. Belki daha fazla kaynak tasarrufu sağlayan bir sorgu. – Peter

+0

Hangi MS Access Sürümü kullanıyorsunuz? –

+0

Erişim 2007-2013 – Peter

İlgili konular