2012-04-24 81 views
-1

我有2个查询,带有参数。我可以让他们报告个人情况,但是我想要在1份报告中看到这两个表格。问题是,一个报表似乎使用参数...我的2个查询是有问题:C#合并2个报告

SELECT  A.Store_Number, A.GC_Sold, B.Total_Cars 

FROM   (SELECT  Store_Number, COUNT_BIG(Quantity_Sold) AS GC_Sold 

FROM   Invoice_Detail_Tb 

WHERE  (Invoice_Date BETWEEN CONVERT(DATETIME, @startdate, 102) AND CONVERT(DATETIME, @enddate, 102)) AND (JLI_Category_Code = 'gc') AND (Invoice_Detail_Code LIKE 'jlgc%') AND (Invoice_Detail_Type = 'Item') 

GROUP BY Store_Number) AS A INNER JOIN 

(SELECT  Store_Number, SUM(Vehicle_Count) AS Total_Cars 

FROM   Daily_Sales_Tb 

WHERE  (Operations_Day BETWEEN CONVERT(DATETIME, @startdate, 102) AND CONVERT(DATETIME, @enddate, 102)) 

GROUP BY Store_Number) AS B ON A.Store_Number = B.Store_Number 

此输出为我的日期范围的数据,看起来像这样:

Store gc sold  total cars 
1  5    8 
2  6    9 
3  7    10 

我的第二查询:

SELECT  A.Store_Number, A.GC_Sold, B.Total_Cars 

FROM   (SELECT  Store_Number, COUNT_BIG(Quantity_Sold) AS GC_Sold 

FROM   Invoice_Detail_Tb 

WHERE  (Invoice_Date = CONVERT(DATETIME, @enddate, 102)) AND (JLI_Category_Code = 'gc') AND (Invoice_Detail_Code LIKE 'jlgc%') AND (Invoice_Detail_Type = 'Item') 

GROUP BY Store_Number) AS A INNER JOIN 

(SELECT  Store_Number, SUM(Vehicle_Count) AS Total_Cars 

FROM   Daily_Sales_Tb 

WHERE  (Operations_Day = CONVERT(DATETIME, @enddate, 102)) 

GROUP BY Store_Number) AS B ON A.Store_Number = B.Store_Number 

该输出返回的数据只是为结束日期。看起来与上面的表格完全相同。

用户正在窗口窗体上选择startdate和enddate并按“开始”。这些参数然后传递给报告查看器...任何想法?

+2

我想知道此问题中C#在哪里? – Vlad 2012-04-24 12:01:31

+0

你可以将'query1 UNION ALL query2'作为单个查询 – 2012-04-24 12:04:18

+0

你可以将你的代码放入带有参数的存储过程中,并返回一个或两个结果集,然后将数据放入报表视图而不传递参数给报告 – AlaaL 2012-04-24 12:04:26

回答

0

如果这是一个SQL Server Reporting Services报告,那么您可以添加多个数据集。在你的情况下,第一个将使用第一个查询,第二个数据集将使用第二个查询和两个使用相同共享数据源(=>数据库连接)的数据集。

然后,您可以将两个表格添加到报告 - 一个引用第一个数据集作为其数据源,另一个引用第二个数据集。

同样可以为本地报告建模。

+0

我收到错误:错误文本框'textbox1'的值表达式使用不带范围的聚合表达式。除非报表恰好包含一个数据集,否则对于在数据区域之外使用的所有聚合需要一个作用域。 – Shmewnix 2012-04-24 12:10:53

+0

这是使用第二个数据集。我需要在报告查看器的加载中调用它吗?也许它应该从哪里得到@enddate? – Shmewnix 2012-04-24 12:13:19

+0

我们在谈论本地报告还是服务器端报告?在我们继续之前,我需要知道。 – 2012-04-24 12:16:19

0

您需要使用第二个查询创建另一个表格添加器。在设置下一个表格适配器后,您需要向报表查看器添加一个表格。添加表格后,将字段从新的tableadapter拖到表格中。完成此操作后,请转到您的reportviewer控件,为您的新表指定数据集的绑定源和