2012-04-24 77 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控件,爲您的新表指定數據集的綁定源和