select 商品代号,数量, 成交价格*数量 销售金额,0 as id from 销售明细表 where 商品代号 = ...
union all
select 商品代号+'合计',sum(数量), sum(成交价格*数量),1 from 销售明细表 where 商品代号 = ...
order by id
只对其中一种具体商品进行操作,多种的话相应地进行分组就可以了,try:
select a.商品代号,a.成交价格,a.时间 from 销售明细表 a,商品目录表 b where a.商品代号=b.商品代号 and a.商品代号='具体商品代号' union select 商品代号,sum(成交价格) as 成交价格,时间 where 商品代号='具体商品代号'
生成合计作为附加的汇总列出现在结果集的最后。当与 BY 一起使用时,COMPUTE 子句在结果集内生成控制中断和分类汇总。可在同一查询内指定 COMPUTE BY 和 COMPUTE。
语法
[ COMPUTE
{ { AVG | COUNT | MAX | MIN | STDEV | STDEVP
| VAR | VARP | SUM }
( expression ) } [ ,...n ]
[ BY expression [ ,...n ] ]
参数
AVG | COUNT | MAX | MIN | STDEV | STDEVP | VAR | VARP | SUM
指定要执行的聚合。下面是 COMPUTE 子句使用的行聚合函数:
行聚合函数 结果
AVG 数字表达式中所有值的平均值
COUNT 选定的行数
MAX 表达式中的最高值
MIN 表达式中的最低值
STDEV 表达式中所有值的统计标准偏差
STDEVP 表达式中所有值的填充统计标准偏差
SUM 数字表达式中所有值的和
VAR 表达式中所有值的统计方差
VARP 表达式中所有值的填充统计方差
没有等同于 COUNT(*) 的函数。若要查找由 GROUP BY 和 COUNT(*) 生成的汇总信息,请使用不带 BY 的 COMPUTE 子句。
这些函数忽略空值。
如果是用 COPPUT 子句指定的行聚合函数,则不允许它们使用 DISTINCT 关键字。
当添加或平均整数数据时,即使列的数据类型为 smallint 或 tinyint,SQL Server 也将结果视为 int 值。有关返回添加数据或平均数据的类型的更多信息,请参见 SUM 和 AVG。