2016-03-23 16 views
1
SELECT c.Category, SUM(c.[Market Value]), SUM([p.Market Value]) 
FROM Dec AS c, [NOV] as p 
GROUP BY c.Category 
; 

Kategori, birleşik işlevin bir parçası olmadığını söyler. Her iki tablo için de her bir kategorinin toplamlarını görmek istiyorum. Sadece belirli değerlerin görünmesini istemiyorum, bu yüzden Katılmalı mıyım?MS ACCESS SQL'de iki toplama işlevi var mı?

DÜZENLEME:

Bu benim JOIN kullanarak yazdıkları
SELECT c.[Category], SUM(c.[Market Value]), SUM(p.[Market Value]) 
FROM Dec AS c 
INNER JOIN Nov AS p 
ON c.ID= p.ID 
GROUP BY c.category, p.Category 
; 

, sadece kesintisiz için queury çalışır. Ben sadece bekler miyim? 80.000 satırlık veri var, ama sadece bir ay boyunca kategoriye göre gruplandırılmış bir SUM yapıyor, bunu anında geri veriyor, neden iki tablo yapmak bu kadar zor?

+1

size değiştirmelisiniz: olacaktır

SELECT Category, [market Value], 'Dec' as type FROM DEC UNION ALL SELECT Category, [market Value], 'Nov' as type FROM NOV 

Ve son sorgu İki sütun istiyorum veri tabanı tasarımı. Ayda bir masada olmak kötü bir fikirdir. Sorunuzu cevaplamak için: 'UNION ALL' kullanmalısınız – cha

+0

Katılıyorum, ancak bu benim kuralım değil. Ayrıca ayda yaklaşık 80 bin veri satırı vardır. Cevabınız için teşekkürler, takdir et. –

+0

Aslında, sadece denedim. Her iki ayın toplamını birlikte istemiyorum :(Her ayın iki ayrı sütunda olmasını istiyorum. –

cevap

1

Sen UNION TÜM verilerinizi gerekir:

SELECT Category, [market Value] 
FROM DEC 
UNION ALL 
SELECT Category, [market Value] 
FROM NOV 

Eğer iki ay boyunca kombine verileri alacak bu sorguyu çalıştırmak

. istediğin bu değil, Şimdi

SELECT Category, SUM([market Value]) as sum_value 
FROM (
SELECT Category, [market Value] 
FROM DEC 
UNION ALL 
SELECT Category, [market Value] 
FROM NOV 
) as A 
GROUP BY Category 

: Eğer kombine veriler için toplamını almak istiyorsanız sadece sorguyu kullanın. Nov için bir, Aralık hafifçe sendikaya TÜM sorguyu değiştirmeniz gerekir Bunu yapmak için bir tane:

SELECT Category, 
SUM(iif(type='Dec', [Market Value], 0)) as Dec_Value, 
SUM(iif(type='Nov', [Market Value], 0)) as Nov_Value 
FROM (
SELECT Category, [market Value], 'Dec' as type 
FROM DEC 
UNION ALL 
SELECT Category, [market Value], 'Nov' as type 
FROM NOV 
) as A 
GROUP BY Category 
+0

Kutsal moly: Bu iğrenç bir şekilde doğrudur.Çok büyük çaba için teşekkürler geçti. –

+0

Bir soru olsa da, neden bir 'AS A' koyarsınız? –

+1

Bu sütun denir/Tablo alias