Если я правильно читал этот вопрос, вы хотите, чтобы включить столбец RevenueMix, что вы показали в таблице примеров таблицу, содержащую только учетную запись и доход? Нечто подобное должно работать:
create table #table (
account nvarchar(10),
revenue int
)
insert #table values
('ACCOUNT1', 100 ),
('ACCOUNT2', 200 ),
('ACCOUNT3', 500 ),
('ACCOUNT4', 1000 ),
('ACCOUNT5', 1500 ),
('ACCOUNT6', 2000 )
declare @TotalRevenue int
declare @MinimumRevenueMix numeric(8,2) = 10.0
select @TotalRevenue = SUM(Revenue) from #table
select a.account,
a.revenue,
convert(nvarchar(20), a.RevenueMix) + '%' RevenueMix
from (
select account,
revenue,
convert(numeric(8,2), convert(float, revenue)/convert(float, @TotalRevenue)) * 100 RevenueMix
from #table
) a
where
a.RevenueMix < @MinimumRevenueMix
drop table #table
Если вы делаете это в хранимой процедуре или нескольких оператор сценария, вы можете заполнить переменную с общего дохода, а затем RevenueMix простой расчет доходов/@ Общий доход. –
Вы хотите получить 2%, 4%, 19% записи из приведенной выше таблицы, которая составляет менее 10% ??? –
Да. Я хочу иметь возможность заполнить столбец Revenuemix в таблице. –