[英]How to add row at the bottom of table in sql query?
我有选择查询,我想添加表格的行底部,其中包含借方和贷方列的总和。
我的SQL查询如下:
SELECT *
FROM
(SELECT
so.OrderDate ,'Sales' As VoucherType,'' AS VoucherNo,
a.Total As Debit, NULL As Credit
FROM SalesOrder so
INNER JOIN
(SELECT
SalesOrderId, SUM(SubTotal) AS Total
FROM SalesOrderDetails
GROUP BY SalesOrderId) AS a ON so.SalesOrderId = a.SalesOrderId
UNION ALL
SELECT
v.VoucherDate As OrderDate, 'Receipt' AS VoucherType,
v.VoucherNumber AS VoucherNo, NULL AS Debit,
v.Amount AS Credit
FROM Vouchers v) AS ledger
ORDER BY
OrderDate ASC
我的查询输出在下面的图像中。
您可以使用grouping sets
执行此操作。 首先,将查询重新排列为聚合查询。 聚合不做任何事情,但总数需要它们。
然后使用group by grouping sets ()
来定义各个组:
SELECT OrderDate, VoucherType, VoucherNo, sum(Debit) as Debit, sum(Credit) as Credit
FROM (SELECT so.OrderDate ,'Sales' As VoucherType, '' AS VoucherNo,
a.Total As Debit, NULL As Credit
from SalesOrder so inner join
(SELECT SalesOrderId,sum(SubTotal) AS Total
FROM SalesOrderDetails
group by SalesOrderId)as a on so.SalesOrderId = a.SalesOrderId
UNION ALL
SELECT v.VoucherDate As OrderDate, 'Receipt' AS VoucherType,
v.VoucherNumber AS VoucherNo,NULL AS Debit ,
v.Amount AS Credit from Vouchers v
) ledger
GROUP BY GROUPING SETS ((OrderDate, VoucherType, VoucherNo), ())
ORDER BY OrderDate ASC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.