想要从另一列中减去一列然后除以第一列并显示为百分比 尝试这个
Select SUM(GoodReadCount)As 'GoodReads'
,'GoodRead%' = ((SUM (GoodReadCount)-SUM (NoReadCount))/SUM (GoodReadCount))
,SUM(NoReadCount)AS 'NoReads'
,SUM(NoInformationCount)AS'NoInfo'
,SUM(LabelConflictCount)AS'Label'
,SUM(TrackingErrorRecircCount)AS'TrackError'
,SUM(ConfirmCount)as'confirmed'
,SUM(RecircCount)as 'recirc'
FROM [DB].[DB].[dbo].[SorterStats]
WHERE RecordedPeriod Between '6/19/2017 01:00:00AM' and '6/23/2017 23:59:00PM'
获得此结果
GoodReads GoodRead% NoReads NoInfo Label TrackError confirmed recirc
21202 0 317 2 5170 8565 13007 12881
想看到这个结果
GoodReads GoodRead% NoReads NoInfo Label TrackError confirmed recirc
21202 98.5% 317 2 5170 8565 13007 12881
DATA TYPES INT INT
答案 0 :(得分:4)
将减法放在parens中,以便在除法之前执行。
(A-B)/C
还将数据类型转换/转换为DECIMAL(4,2)以避免结果自动舍入。
答案 1 :(得分:3)
无论
Startup.Configure
或
cast((SUM (GoodReadCount)-SUM (NoReadCount)) as decimal(8,2))*100/ cast(SUM (GoodReadCount)as decimal(4,2))
会做的伎俩。如果你划分它然后再投射它没有用,因为划分的数字是一个整数,当你施放它时,你只是在小数点后添加两个零