SQL Server 2005在相同productid的底行添加总数

时间:2014-12-17 14:09:33

标签: sql-server sql-server-2005

我想知道如何查询数据库,我可以在最后一行返回Total。 一个供应商有8个WS-C3850-48P-S,另有2个WS-C3850-48P-S 所以结果应该显示10

select [companyid]
  ,[productid]
  ,[productdescription],
   sum([Qty in Stock]) as TotalQty
from tblstock
where [productid] like '%WS-C3850-48P-S%'
group by ([Qty in Stock]),[companyid]
  ,[productid]
  ,[productdescription]

having ([Qty in Stock]) >0
order by [Qty in Stock] desc

我希望看到这样的结果。

companyid  productid        productdescription        TotalQty
2          WS-C3850-48P-S   Cisco Catalyst 3850 48       2
3          WS-C3850-48P-S   Cisco Catalyst 3850 48       8
                                    Total                10

3 个答案:

答案 0 :(得分:0)

使用WITH ROLLUP:

select [companyid]
  ,[productid]
  ,[productdescription],
   sum([Qty in Stock]) as TotalQty
from tblstock
where [productid] like '%WS-C3850-48P-S%'
group by ([Qty in Stock]),[companyid]
  ,[productid]
  ,[productdescription] WITH ROLLUP
having ([Qty in Stock]) >0
order by [Qty in Stock] desc

答案 1 :(得分:0)

您可以使用GROUPING SETS中的SQL SERVER来实现此目的。

<强>查询

select [companyid]
,[productid]
,[productdescription],
sum([Qty in Stock]) as TotalQty
from tblstock
where [productid] like '%WS-C3850-48P-S%'
group by GROUPING SETS((([Qty in Stock]),[companyid]
,[productid]
,[productdescription]),())
having ([Qty in Stock]) >0
order by [Qty in Stock] desc

答案 2 :(得分:0)

试试这个

SELECT distinct tblcompany.companyid,companyname,productid,
[Qty in Stock], StockDate
FROM tblstock 
join tblcompany
on tblstock.companyid = tblcompany.companyid
where [productid] like '%WS-C3850-48P-S%'
group by tblcompany.companyid,companyname,productid,[Qty in Stock],StockDate
having [Qty in Stock] > 0
order by StockDate desc
select sum([Qty in Stock]) as [Total Qty] from tblstock where [productid] like '%WS-C3850-48P-S%'