), каждый раз, когда вы суммируете или выполняете математические вычисления для столбца, это означает, что он должен быть числовым.

я есть эти результаты:

PersonID    SUM(PA.Total)
-------------------------
   1            75
   2            75
   3            15
   4            15
   5            60
   6            60

С таблицей вроде:

PersonID    Total
------------------
   1         50
   2         50
   3         10
   4         10
   5         40
   6         40
   1         25
   2         25
   3          5
   4          5
   5         20
   6         20

Они сгруппированы по человеку. Теперь я хочу добавить столбец с процентами для каждого человека, рассчитанными из суммы всех их сумм.

Например: общая сумма равна 300, и, следовательно, мне нужен такой результат:

PersonID    SUM(PA.Total)   Percentage
--------------------------------------
   1            75              25%
   2            75              25%
   3            15              5%
   4            15              5%
   5            60              20%
   6            60              20%

Я посмотрел на код онлайн, и я придумал исправление, такое как это:

 SELECT 
     P.PersonID, SUM(PA.Total)
     SUM(PA.Total) * 100 / [p] AS 'Percentage'
 FROM 
     Person P
 JOIN 
     Package PA ON P.PersonID = PA.PackageFK
 CROSS JOIN 
     (SELECT SUM(PA.[Total]) AS [p] 
      FROM Package PA) t
 GROUP BY 
     P.PersonID

Но я не уверен, как включить кросс-объединение в объединение, а также в раздел «Группа / сумма». Или это все в порядке?

Любая помощь будет оценена - SQL скрипкаhttp://sqlfiddle.com/#!9/80f91/2

Ответы на вопрос(4)

Ваш ответ на вопрос