我有一个用作报表基础的SQL查询。报告显示按年份,月份和燃料类型分组的燃料使用量。我想计算每种燃料类型的总量百分比,但我没有太多的运气。为了计算整体的百分比,我需要能够获得所使用燃料的总量,而不管它在哪个组中,我似乎无法弄清楚如何做到这一点。这是我的查询:SQL按组计算百分比
SELECT Year([DT1].[TransactionDate]) AS [Year], Month([DT1].[TransactionDate]) AS [Month], DT1.FuelType, Format(Sum(DT1.Used),"#.0") AS [Total Used],
FROM (SELECT TransactionDate, FuelType, Round([MeterAfter]-[MeterBefore],2) AS Used FROM FuelLog) AS DT1
WHERE (((DT1.TransactionDate) Between [Start Date] And [End Date]))
GROUP BY Year([DT1].[TransactionDate]), Month([DT1].[TransactionDate]), DT1.FuelType
ORDER BY Year([DT1].[TransactionDate]), Month(DT1.TransactionDate), DT1.FuelType;
我试着添加以下作为子查询,但我得到一个错误,说子查询返回多个结果。
(SELECT Sum(Round([MeterAfter]-[MeterBefore],2)) AS Test
FROM Fuellog
WHERE Year([Year]) and Month([Month])
GROUP BY Year([TransactionDate]), Month([TransactionDate]))
一旦我得到所有燃料的总和,我需要将燃料用量除以两种燃料的总量。我应该以不同的方式接近这个吗?
完美的感谢@vmachan!在ORDER BY的一个上有一个半角字符,但是当我删除它时,查询完美地运行了!感谢您的帮助。 – mack
@mack,很高兴帮助。我通过删除错误的分号更新了答案。 – vmachan