Reporting Services - 在较长时间内获取特定时期的结果

时间:2010-01-21 19:19:21

标签: sql-server reporting-services

我有一张桌子,每小时检查一次3天的数据,有几台不同的机器可以在一段时间内在特定的瓶子上工作,在三天的时间里可能会有几个不同的瓶子继续运行那台机器。我想显示第一瓶生产期间的结果,然后是第二瓶的结果,例如

Rows ------------------------------------  Columns -------------------------------------
Machine  Product      Product  Start       18/01/2010 18/01/2010 18/01/2010 18/01/2010
                      Code     Date        05:00      06:00      07:00      08:00
1        Beer Bottle  10256    17/01/2010  89         89
                               07:00
2        Wine Bottle  10376    18/01/2010                        14         50
                               07:00

但我看起来像这样,它保留了以前的瓶子数据:

Machine  Product      Product  Start       18/01/2010 18/01/2010 18/01/2010 18/01/2010
                      Code     Date        05:00      06:00      07:00      08:00
1        Beer Bottle  10256    17/01/2010  89         89         14         50
                               07:00
2        Wine Bottle  10376    18/01/2010  89         89         14         50
                               07:00

我将行组分组在Product上,列组分组在DateTime上。

任何人都可以建议我如何让报告像第一个例子一样运行。

问候,AW

2 个答案:

答案 0 :(得分:0)

您是在汇总报表或SQL中的数据吗?如果在SQL中我会有兴趣看到查询。它看起来像一个SQL问题而不是报告设置。你介意发帖吗?

看起来您需要根据产品(或产品代码)以及时间进行汇总。现在你只是根据时间做这件事。

HTH

答案 1 :(得分:0)

HTH,您好,感谢您的回复,我已根据要求附上了查询:

SELECT     tblRegion.RegionName, tblSite.SiteName, tblLine.LineName, 
           tblCheck.CheckName, tblCheckResult.DateTime, tblCheckResultDecimal.Result, 
           tblProdRun.PartNo, tblProdRun.PartDesc, tblProdRun.EndDateTime
FROM         tblRegion INNER JOIN
                  tblSite ON tblRegion.RegionID = tblSite.RegionID INNER JOIN
                  tblLine ON tblSite.SiteID = tblLine.SiteID INNER JOIN
                  tblCheckResult ON tblLine.LineID = tblCheckResult.LineID INNER JOIN
                  tblCheck ON tblCheckResult.CheckID = tblCheck.CheckID INNER JOIN
                  tblCheckResultDecimal ON tblCheckResult.CheckResultID =
                  tblCheckResultDecimal.CheckResultID INNER JOIN
                  tblProdRun ON tblLine.LineID = tblProdRun.LineID
WHERE     (tblCheckResult.DateTime >= @DateFrom) AND (tblCheckResult.DateTime <= 
          @DateTo) AND (tblCheck.CheckID = 69) AND (tblSite.SiteID = @SiteID) AND
          (tblProdRun.EndDateTime IS NULL) OR
          (tblCheckResult.DateTime >= @DateFrom) AND (tblCheckResult.DateTime <=
          @DateTo) AND (tblCheck.CheckID = 69) AND (tblSite.SiteID = @SiteID) AND 
          (tblProdRun.EndDateTime BETWEEN @DateFrom AND @DateTo)

ORDER BY tblLine.LineName,tblSite.SiteName,tblCheckResult.DateTime