2014-12-27 20 views
-1

我有一個詳細的表格,如:總結了組,製造複合鍵

COMPANY DATE GROUP AMT 
Sentana 12Dec A 1200 
Sentana 12Dec B  800 
Toyq  12Dec A 1300 
Toyq  12Dec A  100 
Sentana 12Dec B  300 
Toyq  13Dec A  700 
Sentana 12Dec A  800 

現在,我想使基礎上,3列(公司日化集團)的複合唯一鍵,所以有一個輸出,如:

COMPANY DATE GROUP AMT 
Sentana 12Dec A 2000 
Sentana 12Dec B 1100 
Toyq  12Dec A 1400 
Toyq  13Dec A  700 

我用查詢(SQL),如: 創建表TEMP作爲 SELECT DISTINCT公司,日期,集團從表 組總和(AMT)的公司,日期,集團

Error: The AMT gets increased to many folds maybe 
because there are some more columns. 

注意:我需要創建一個基於3列(COMPANY DATE GROUP)的組合鍵的表,以便我可以將它與其他表連接起來。我可以通過連接三個到3列的重複組合,變得難以得到期望的結果。

+0

這RDBMS您正在使用? –

+0

避免你選擇的子句中出現'Distinct' –

+0

我想我使用的是使用PostgreSQL作爲後端的SAS。它還通過使用PROC SQL命令支持SQL語法。 – Govindada

回答

0

嘗試沒有distinct

select COMPANY, DATE, GROUP, sum(AMT) from table group by COMPANY, DATE, GROUP 
+0

在這種情況下,組合鍵並不是主要目標。 – Govindada

+0

你是什麼意思組合鍵沒有形成? group by子句中應該只有三個變量的唯一值。 – Reeza

+1

即使添加明確的鍵,查詢仍保持不變。您可以添加一個組合鍵:'alter table xx add key(company,date,group)' – Ossip