选择带有计算总数的明细

时间:2018-07-20 08:52:37

标签: sql sql-server sql-server-2008

我正在使用以下SQL脚本

SELECT PettyHeader.HPetDate,
PettyHeader.HPetVouNo,
PettyHeader.HPetPayee,
PettyDetail.DPetAcNo,
PettyDetail.DPetDetail,
PettyDetail.DPetAmount
FROM PettyHeader
INNER JOIN PettyDetail
ON PettyHeader.HPetComCode = PettyDetail.DPetComCode AND
PettyHeader.HPetLocCode = PettyDetail.DPetLocCode AND
PettyHeader.HPetDate = PettyDetail.DPetDate AND
PettyHeader.HPetVouNo = PettyDetail.DPetVouNo
WHERE (PettyHeader.HPetComCode = '15') AND
(PettyHeader.HPetLocCode = '01') AND
(PettyHeader.HPetDate = CONVERT(DATE, '20180711', 111))
union  all
SELECT PettyDetail.DPetDate,
    PettyDetail.DPetVouNo,
    '',
    '',
    '',
    sum(PettyDetail.DPetAmount)
    FROM PettyDetail
    WHERE (PettyDetail.DPetComCode = '15') AND
    (PettyDetail.DPetLocCode = '01') AND
    (PettyDetail.DPetDate = CONVERT(DATE, '20180711', 111))
    group by PettyDetail.DPetDate,
    PettyDetail.DPetVouNo

我想显示带有详细信息表记录的标题表记录。没关系。但我也想显示小计。 我的实际需求显示如下 enter image description here

但是我的结果显示 enter image description here

我如何通过显示为第一张图片来解决我的问题。

1 个答案:

答案 0 :(得分:0)

在Oracle和SQL Server中,您可以使用 ROLLUP 。您应该在此link

中找到的所有信息

链接与Oracle有关,但ROLLUP在SQL Server中的工作原理完全相同。