19

以下、リストデータです。

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

コードとタイプでグループ化して合計し、すべての行ItemCountの総計を取得するには、結果が必要です。Amount

これは可能ですか?

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

6 に答える 6

27

してみてください:

SELECT
    Code,
    SUM(ItemCount) ItemCount,
    Type,
    SUM(Amount) Amount
FROM
    YourTable
GROUP BY Code, Type
ORDER BY Code
于 2013-07-25T04:17:26.407 に答える
4

これは宿題のようです。

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

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

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 の場合、列エイリアスの周囲からバッククォートを削除します。

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

于 2013-07-25T04:20:55.340 に答える
1

このクエリを試すことができます:

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

これにより、適切な結果が得られます。Codeand Typeand notでグループ化する必要がありますItemCount

于 2013-07-25T04:19:49.680 に答える
0

あなたが与える量はサンプルデータとは異なりますが、これはサンプルデータ値に対して機能します:

SELECT Code, SUM(ItemCount) AS ItemCount, [Type], SUM(Amount) AS Amount 
FROM dbo.TestSubs GROUP BY Code,[Type] ORDER BY Code
于 2013-07-25T04:31:06.057 に答える
0

各行の実際の合計が itemcount と amount の積であるという私の理解が正しければ、以下のコードを使用できます。@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
于 2013-07-25T04:31:37.517 に答える