0

2 つの列をグループ化するクエリを作成しています。これは、Col1 と Col2 を同じグループに入れることを意味します。

Group Col1 に基づいてレコードの SUM を実行するにはどうすればよいですか?

私はこれまでのところこれを持っています: http://sqlfiddle.com/#!3/eada2/1

ありがとうございました

4

3 に答える 3

0

集計関数を配置するだけですt.allDocuByActivity

MIN(t.allDocuByActivity) AS [Total DocuType in Activity],

ただし、あなたのラベルはDocuType. 必要ありませんDISTINCTか?

于 2013-03-17T16:58:14.077 に答える
0

以下のようにして解決できました。

WITH cteActivityIds (activityId, allDocuByActivity)
AS
  (SELECT activityId, COUNT(*) AS allDocuByActivity FROM #ER GROUP BY activityId)
SELECT
      E.activityId AS [Actiivty ID],
      docuType AS [Docu Type],
      COUNT(docuType),
      CONVERT(DECIMAL(16,2), (COUNT(docuType) * 100.00 / t.allDocuByActivity)) [Total     DocuType in Activity],
      SUM(CASE WHEN [sent] != '1-1-1900' THEN 1 END) AS [Sent],
      SUM(CASE WHEN [approved] != '1-1-1900' THEN 1 END) AS [Approved]
FROM
      #ER AS E
INNER JOIN cteActivityIds AS t 
  ON E.activityId = t.activityId
GROUP BY
     E.activityId, docuType, t.allDocuByActivity

ありがとう

于 2013-03-17T06:20:36.590 に答える