2014-04-16 11 views
0

我有兩張表,我想在一張圖表,StockIssued和StockOrdered上顯示。我有顯示,每月,每年的費用爲兩個表如下SELECT語句在一個asp.net圖表中的C#2數據集

SELECT YEAR(IssueDate) AS 'Year', MONTH(IssueDate) AS 'Month', SUM(TotalCost) AS 'TotalCostIssue' 
FROM IssueStock 
GROUP BY YEAR(IssueDate), MONTH(IssueDate) 
order by 'Year', 'Month' 

SELECT YEAR(order_date) AS 'Year', MONTH(order_date) AS 'Month', SUM(cost) AS 'TotalCostOrder' 
FROM Orders 
GROUP BY YEAR(order_date), MONTH(order_date) 
order by 'Year', 'Month' 

股票發行
年月TOTALCOST
2010 --- 1 --- 1500
2010 - 2 - - 1400
..........

股票有序
年月TOTALCOST
2010 --- 1 --- 1600
2010 --- 2 --- 1700
...........

如何在同一圖表上顯示每個月的這些費用?

C#代碼

string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
     SqlConnection conn = new SqlConnection(connectionString); 

     string SelectQuery1 = "SELECT YEAR(IssueDate) AS 'Year', MONTH(IssueDate) AS 'Month', SUM(TotalCost) AS 'TotalCost' " + 
      "FROM IssueStock WHERE YEAR(IssueDate) = " + year + " GROUP BY YEAR(IssueDate), MONTH(IssueDate) order by 'Year', 'Month'"; 

     SqlCommand myCommand = new SqlCommand(SelectQuery1, conn); 

     myCommand.Connection.Open(); 

     SqlDataAdapter myDataAdapter = new SqlDataAdapter(); 
     myDataAdapter.SelectCommand = myCommand; 

     DataSet myDataSet = new DataSet(); 

     myDataAdapter.Fill(myDataSet, "Query"); 

     Chart1.DataSource = myDataSet; 
     Chart1.Series["Series1"].XValueMember = "Month"; 
     Chart1.Series["Series1"].YValueMembers = "TotalCostIssue"; 

     Chart1.DataBind(); 

     myCommand.Connection.Close(); 
+0

您可以顯示代碼如何用一個數據集填充圖表嗎? –

+0

添加C#代碼,從SELECT語句填充數據集。 – user2554156

回答

0

至於你的兩個表具有相同的結構。您也可以在SQL命令中使用UNION ALL子句。這不是最好的解決方案,但你會得到結果。

string SelectQuery1 = "SELECT YEAR(IssueDate) AS 'Year', MONTH(IssueDate) AS 'Month', SUM(TotalCost) AS 'TotalCost' " + 
     "FROM IssueStock WHERE YEAR(IssueDate) = " + year ; 
SelectQuery1 += " UNION ALL SELECT YEAR(IssueDate) AS 'Year', MONTH(IssueDate) AS 'Month', SUM(TotalCost) AS 'TotalCost' " + 
     "FROM Orders WHERE YEAR(IssueDate) = " + year + " GROUP BY YEAR(IssueDate), MONTH(IssueDate) order by 'Year', 'Month'"; 
+0

我試過這個,但是它給出了一個叫做TotalCost的單獨的組合,沒有辦法區分它是哪個TotalCost。 – user2554156

+0

通過在存儲過程中創建臨時表進行排序 – user2554156

+0

現在可以嗎?涼 –

相關問題