您可以通过此查询获取所需输出的最后一行以外的所有内容。
SELECt y.Product, y.Total, Format((y.Total/sub.SumOfTotal),'#.##%') AS PercentageFROM YourTable AS y, ( SELECt Sum(Total) AS SumOfTotal FROM YourTable ) AS sub;
由于该查询不包含
JOIN或
WHERe条件,因此它将返回表与子查询的单行之间的交叉联接。
如果您需要问题示例的最后一行,则可以
UNIOn查询另一行,该查询返回所需的伪造行。在此示例中,我使用了一个自定义的Dual表,该表设计为始终仅包含一行。但是您可以替换另一个返回单行的表或查询。
SELECt y.Product, y.Total, Format((y.Total/sub.SumOfTotal),'#.##%') AS PercentageFROM YourTable AS y, ( SELECt Sum(Total) AS SumOfTotal FROM YourTable ) AS subUNIOn ALLSELECt 'Product', DSum('Total', 'YourTable'), '100%'FROM Dual;


