我有一个名为lprPostcodeRegion的区域名称和区域ID。我想根据地区ID计算以下总和。例如,对于区域ID 1,我会得到一定的总和,对于区域ID 2,我会得到不同的总和,这发生在大约15个ID上。你可以看到我已经声明RegionID为1,因此,我只得到RegionID1的总和(lpr.regionID = 1/lpr.regionID = @RegionID)。我如何自动计算所有区域ID的总和?在Sql Server中使用变量
DECLARE @RegionID int;
SET @RegionID = 1;
SELECT lpr.RegionID,
--wc.whsHeaderID,
SUM(c.[Chargeable Weight]) AS LeftOffWt
FROM dbo.whsConsignment wc
INNER JOIN whsHeader wh on wh.WhsHeaderID = wc.whsHeaderID
INNER JOIN dbo.cgtConsignment c ON c.[Consignment Reference] = wc.ConsignmentReference
INNER JOIN dbo.genAddress ga ON ga.AddressID = c.Consignor
INNER JOIN dbo.lstPostcode lp ON lp.Postcode = ga.PostcodePrefix
INNER JOIN dbo.lstPostcodeRegion lpr ON lpr.RegionID = lp.RegionID
AND c.Cancelled = 0
--AND wc.ConsignmentReference LIKE '4%'
and lpr.RegionID = 1
WHERE StatusCode IN ('NL') and wh.ArrDepDate between @StartDate and @EndDate
GROUP BY lpr.RegionID
您的问题似乎与帖子标题不符。你是否在寻找一个接受变量并计算该记录总和的程序?或者你正在寻找一个总是会返回所有地区的总和的查询? –
是不是你的查询在做什么? (如果你删除'和lpr.RegionID = 1'条件) – HoneyBadger
由于你使用group by,我没有看到任何问题在你的代码中删除这个'和lpr.RegionID = 1',这样它就会得到所有的总和regionids – TheGameiswar