sql-server - 为什么我的总数没有正确显示,我该如何解决?
问题描述
我正在使用来自 SQL Server 的数据重新制作 SSRS 中的 Access 报告。在报告中,我有一个矩阵,其中一个值是 SumOfPieces。SumOfPieces 在我的查询中为sum(t1.pieces) as SumOfPieces
. 在表格中,我只使用 [SumOfPieces] 就得到了正确的行值,但我的总数没有加在一起。例如,这就是我得到的:
Product | Facility | Shift/Line | Pieces
BFS | BRWP | A 1 | 65,000
BFS | MHWP | A 2 | 70,000
BFS | MHWP | B 2 | 80,000
________________________________________
Total | | | 70,000
出于某种原因,它给了我中间值总计的表达式只是=Sum(fields!SumOfPieces.Value)
我尝试了类似此表达式的不同变体=Sum(avg(fields!SumPieces.Value,"Product1")
在 Access 中,这是通过嵌套 4-5 深的查询来完成的。对于这个领域,它看起来像
- 带有 t1.Pieces 的原始查询 t1
- t1 上的下一个查询,t1.Pieces 总和为 t1.SumOfPieces
- 下一个查询将 t1 与其他查询连接
Access 报表仅使用 SumOfPieces 作为行值,然后使用 sum(SumOfPieces) 作为总数。
我的数据集查询示例:
SELECT
StaveHistorySummary.fk_Inspectors
,StaveHistorySummary.fk_InspectionSites
,StaveHistorySummary.fk_ProductionLines
,StaveHistorySummary.fk_ProductTypes
,StaveHistorySummary.DateMade
,StaveHistorySummary.[TimeStamp]
,StaveHistorySummary.StaveHistoryguid
,InspectionSites.SiteAbbr
,Inspectors.Name
,ProductTypes.Product
,ProductionLines.LineName
,CAST(sum(Millproduction.Pieces) as int) AS SumPieces
,CASE
WHEN SapEdgingInches IS NOT NULL THEN SapEdgingInches
WHEN HeartEdgingInches IS NOT NULL THEN HeartEdgingInches
WHEN BothEdgingInches IS NOT NULL THEN BothEdgingInches
WHEN SawnIncorrInches IS NOT NULL THEN SawnIncorrInches
WHEN EqualizedIncorrInches IS NOT NULL THEN EqualizedIncorrInches
WHEN SawnOKInches IS NOT NULL THEN SawnOKInches
END AS WIDTH
FROM
StaveHistorySummary
INNER JOIN ProductionLines
ON StaveHistorySummary.fk_ProductionLines = ProductionLines.ProductionLines_NDX
INNER JOIN InspectionSites
ON StaveHistorySummary.fk_InspectionSites = InspectionSites.InspectionSites_NDX
INNER JOIN ProductTypes
ON StaveHistorySummary.fk_ProductTypes = ProductTypes.ProductTypes_NDX
INNER JOIN Inspectors
ON StaveHistorySummary.fk_Inspectors = Inspectors.Inspectors_NDX
INNER JOIN MillProduction
ON inspectionsites.inspectionsites_ndx = MillProduction.fk_inspectionsites
AND productionlines.productionlines_ndx = MillProduction.fk_productionlines
AND producttypes.producttypes_ndx = millproduction.fk_producttypes
WHERE (CAST(CAST(stavehistorysummary.DateMade as date) as datetime) BETWEEN '6/16/2019' AND '6/22/2019')
AND (CAST(CAST(MillProduction.DateMade as date) as datetime) BETWEEN '6/16/2019' AND '6/22/2019')
GROUP BY
StaveHistorySummary.fk_Inspectors
,StaveHistorySummary.fk_InspectionSites
,StaveHistorySummary.fk_ProductionLines
,StaveHistorySummary.fk_ProductTypes
,StaveHistorySummary.DateMade
,StaveHistorySummary.[TimeStamp]
,StaveHistorySummary.StaveHistoryguid
,InspectionSites.SiteAbbr
,Inspectors.Name
,ProductTypes.Product
,ProductionLines.LineName
,CAST(sum(Millproduction.Pieces) as int) AS SumPieces
,CASE
WHEN SapEdgingInches IS NOT NULL THEN SapEdgingInches
WHEN HeartEdgingInches IS NOT NULL THEN HeartEdgingInches
WHEN BothEdgingInches IS NOT NULL THEN BothEdgingInches
WHEN SawnIncorrInches IS NOT NULL THEN SawnIncorrInches
WHEN EqualizedIncorrInches IS NOT NULL THEN EqualizedIncorrInches
WHEN SawnOKInches IS NOT NULL THEN SawnOKInches
END AS WIDTH
解决方案
推荐阅读
- asp.net-mvc - 如何在 StartUp.Auth.cs 中使用 Autofac 进行依赖注入
- javascript - 关闭选项卡时如何发出socketIO事件
- python - 在中心设置 ttk Notebook 选项卡 [Python]
- haskell - Haskell返回十六进制值的列表
- php - 在laravel中带有文件上传循环的数组插入数据库
- python - 如何修复 docplex 错误?它在 CPLEX 中运行良好
- java - 如何在java中读取MongoDB数组
- sql - Oracle SQL:在 1905 年 6 月 1 日之前的时区无法正确转换时间戳
- reactjs - React-Spring 对列表数量太懒了
- css - 如何使 :before & :after 伪元素填充剩余宽度?