【发布时间】:2012-04-24 11:58:15
【问题描述】:
我有 2 个带有参数的查询。我可以让他们单独报告,但是我想要一份报告中的两个表格。问题是,子报表使用参数似乎有问题......我的 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
此输出仅返回结束日期的数据。并且看起来与上表相同。
用户正在选择 Windows 窗体上的开始日期和结束日期并按下“开始”。然后将参数传递给报表查看器...有什么想法吗?
【问题讨论】:
-
我想知道这个问题中 C# 的位置在哪里?
-
你可以将
query1 UNION ALL query2作为单个查询进行拍摄 -
您可以将代码放入带参数的存储过程中,并返回一两个结果集,然后将数据放入报表视图中,无需将参数传递给报表
-
这是我的 C# 代码,用于提取第一个查询的信息...如何让它们在 C# 中向同一个报告报告... this.DataTable1TableAdapter.Fill(this.JLI_DataDeliveryServiceDataSet. DataTable1,startdate.Value,enddate.Value); this.reportViewer1.RefreshReport();
-
存储过程在使用参数的报表查看器中也是一团糟。
标签: sql reporting-services reporting