我需要扩展当前返回子总计的sql查询。有没有办法通过此查询返回子总计和总计:
SELECT oi.PurchaseID, SUM(oi.Quanity * CONVERT(decimal(18,2), p.ItemPrice)) AS sub_total FROM vwPurchaseType oi JOIN tblColor p ON p.ColorID = oi.ColorID WHERE oi.UserID = 1 GROUP BY oi.PurchaseID
我可以为总计创建另一个别名吗?我尝试了几种不同的方法,到目前为止,我倾向于将sub_totals插入临时表并在存储过程中返回值。
非常感谢任何建议!
答案 0 :(得分:2)
您没有指定正在使用的数据库,但许多数据库支持with rollup
的{{1}}子句:
group by
这会在SELECT oi.PurchaseID,
SUM(oi.Quanity * CONVERT(decimal(18,2), p.ItemPrice)) AS sub_total
FROM vwPurchaseType oi JOIN
tblColor p
ON p.ColorID = oi.ColorID
WHERE oi.UserID = 1
GROUP BY oi.PurchaseID WITH ROLLUP;
为PurchaseId
的位置添加一行。那里有总数。