繁体   English   中英

SQL 总计无小计

[英]SQL Grand total without subtotals

我正在按顺序制作大型 SQL 报告,非常粗略地简化如下;

SELECT Supplier.SupplierName, POHeader.PODate, POHeader.PORef, POLine.LineID, SUM(Subquery.Val)
FROM Supplier INNER JOIN POHeader ON POheader.supplier = Supplier.SupplierID
    INNER JOIN POLine ON POLine.HeaderID = POHeader.PO_ID
    INNER JOIN Subquery on Subquery.POLine = POLine.Line_ID
GROUP BY Supplier.SupplierName, POHeader.PODate, POHeader.PORef, POLine.Line_ID

我想要一个总计在底部,不是在整个报告中点缀一堆小计 - 因此我认为我不能使用ROLLUP 那里的子Subquery当然是一个子查询,实际上会有十二个,而且都非常复杂,所以我想避免使用UNION来尽可能地汇总所有内容。 有没有其他方法可以在报表底部放置总计行而不使用小计?

不完全确定 SQL 版本,但如果有帮助,谷歌告诉我Microsoft SQL Server Express 或 SQL Server Standard 可以与 OrderWise 一起使用

使用GROUPING SETS

SELECT Supplier.SupplierName, POHeader.PODate, POHeader.PORef, POLine.LineID, SUM(Subquery.Val)
FROM Supplier INNER JOIN
     POHeader
     ON POheader.supplier = Supplier.SupplierID JOIN
     POLine
     ON POLine.HeaderID = POHeader.PO_ID JOIN
     Subquery 
     ON Subquery.POLine = POLine.Line_ID
GROUP BY GROUPING SETS ( (Supplier.SupplierName, POHeader.PODate, POHeader.PORef, POLine.Line_ID), () )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM