2012-03-07 4 views
1

複数のデータ行がすべて同じ会社IDを共有しています。複数の行をSQL​​で合計する方法

SQL Server Management Studio 2005を使用して、企業IDごとに1行のデータを与えるために、すべての金額を合計する方法はありますか?

私は現在、以下のデータを持っている。例えば

......私が試してみて、取得したいと思い何

Company_Name Company_ID Amount 
Company 6   10024 120 
Company 6   10024 569 
Company 6   10024 53 
Company 6   10024 100 
Company 6   10024 564 
Company 7   10638 9500 
Company 7   10638 105 
Company 7   10638 624 

.......

Company_ Name Company_ID  Amount 
Company 6  10024   1406 
Company 7  10638  10229 

がありますこれを行う方法?

私に正しい方法を指摘するアドバイスはすばらしいでしょう。

おかげで、

+2

SQLには「行」はありません。 {レコード、タプル、行}(わずかに異なる意味で)ではなく、 "行"と呼ぶことができます。あなたが望むのは「集約」と呼ばれます。詳細なマニュアルでSUMを参照してください。 SUM()は、「集合関数」の1つです。 – wildplasser

+0

@wildplasser:実際には、彼らが必要とするのは「要約」です。若干異なる意味です; – onedaywhen

+0

テーブルが完全に正規化されていないことに注意してください。 – onedaywhen

答えて

7
SELECT Company_Name, Company_ID, SUM(Amount) 
FROM TableName GROUP BY Company_Name, Company_ID 
2
SELECT Company_Name, Company_ID, sum(Amount) 
FROM table 
group by Company_Name, Company_ID 
1

あなたがGROUP BYSUM機能を使用する必要があります。

SELECT Company_Name, Company_ID, SUM(Amount) AS TOTAL_AMOUNT 
FROM myTable 
GROUP BY Company_Name, Company_ID 
3
SELECT Company_Name, Company_ID, sum(Amount) 
FROM your table 
GROUP BY Company_Name, Company_ID 
3

これを試してみてください。

SELECT Company_Name, Company_ID, SUM(Amount) AS Amount 
FROM Companies 
GROUP BY Company_Name, Company_ID; 

デモhere

1
WITH T (Company_Name, Company_ID, Amount) 
    AS 
    (
     SELECT 'Company 6', '10024', 120 UNION ALL 
     SELECT 'Company 6', '10024', 569 UNION ALL 
     SELECT 'Company 6', '10024', 53 UNION ALL 
     SELECT 'Company 6', '10024', 100 UNION ALL 
     SELECT 'Company 6', '10024', 564 UNION ALL 
     SELECT 'Company 7', '10638', 9500 UNION ALL 
     SELECT 'Company 7', '10638', 105 UNION ALL 
     SELECT 'Company 7', '10638', 624 
    ) 
SELECT DISTINCT Company_Name, Company_ID, 
     SUM(Amount) OVER (PARTITION BY Company_ID) AS total_amount 
    FROM T; 
+3

匿名のdownvoterが再び攻撃! – onedaywhen

関連する問題