2013-07-25 8 views
15

以下はリストデータです。2列でグループ化し、すべての行に総計を表示します

Code ItemCount Type  Amount 
---------------------------------------- 
B001 1   Dell   10.00 
B001 1   Dell   10.00 
B001 1   Apple  10.00 
B001 2   Apple  20.00 
B001 2   Apple  20.00 
B114 1   Apple  30.50 
B114 1   Apple  10.00 

Iコードによって、およびタイプによってグループに結果を必要とItemCountを合計し、すべての行にAmountの総計を得ます。

これは可能ですか?

Code ItemCount Type  Amount 
---------------------------------------- 
B001 2   Dell   20.00 
B001 5   Apple   50.00 
B114 2   Apple   40.50 
+0

なぜすべてが同じ合計金額を持っているのですか? – hallie

答えて

22

てみてください:

SELECT 
    Code, 
    SUM(ItemCount) ItemCount, 
    Type, 
    SUM(Amount) Amount 
FROM 
    YourTable 
GROUP BY Code, Type 
ORDER BY Code 
+0

あなたはitemcountでグループ化していますが、適切な結果が得られますか? – Abubakkar

+0

はい、あなたは正しい@Abuです。それは間違いでした。 – TechDo

+0

そのコマンドを使用して動作します – user2617053

1

をあなたはこのクエリを試すことができます。

SELECT Code,SUM(ItemCount) AS ItemCount,Type,SUM(Amount) AS Amount 
FROM 
    table 
GROUP BY Code, Type 

これはあなたに適切な結果が得られます。 CodeTypeでグループ化する必要があります。ItemCount

3

これは宿題のようです。

このクエリは、指定された結果セットを返します、MySQLの場合

(私は私が最初の質問を見たとき、これはMySQLのとしてタグ付けされたと思ったが、タイトルは明らかにMS SQLを示し誓う):

SELECT t.Code 
    , SUM(t.ItemCount) AS ItemCount 
    , t.Type 
    , s.Amount AS Amount 
    FROM mytable t 
CROSS 
    JOIN (SELECT SUM(r.Amount) AS Amount 
      FROM mytable r 
     ) s 
GROUP 
    BY t.Code 
    , t.Type 
ORDER BY t.Code ASC, t.Type DESC 

他のデータベースの場合は、MySQLのFor the backticksを列エイリアスから削除します。

大文字と小文字を区別する必要がある場合は、Oracleの場合、識別子は二重引用符で囲みます。 SQL Serverの場合、識別子は角括弧で囲まれています。 MySQLの識別子はバッククォートで囲まれています。

0

あなたが与える量は、サンプルデータと異なるが、これはサンプルデータ値のために働く:

SELECT Code, SUM(ItemCount) AS ItemCount, [Type], SUM(Amount) AS Amount 
FROM dbo.TestSubs GROUP BY Code,[Type] ORDER BY Code 
0

私の理解は、各行の実際の合計はITEMCOUNT個の製品と量であること正しい場合以下のコードを使用することができます。 @ Abuのコードを使用しない場合。

;WITH cte AS 
(
    SELECT Code, ItemCount, Type, Amount, ItemCount * Amount AS TotalAmount FROM <Table> 
) 
SELECT 
    Code, 
    SUM(ItemCount), 
    Type, 
    SUM(TotalAmount) 
FROM cte 
GROUP BY Code, Type 
2

あなたはこの簡単な解決策試すことができます。

select Code,sum(ItemCount),Type,sum(Amount) from table group by code,type 

「でグループ」を理解する便利来る

関連する問題