棒グラフにデータを入力する必要があります。私はすべてを整えています。データを収集するために使用されるSQLクエリがあります。
私が探しているのは、今月と過去11か月(合計12か月)のデータを提供するための最良の方法です。
このコードは、今日までの今月の情報を教えてくれます。これを変更して、過去11か月の情報も表示されるようにするにはどうすればよいですか?
この変更はクエリに対して行われますか、それともクエリを12回ループしますか?
protected void FillChart ()
{
DateTime now = DateTime.Now;
DateTime startDate = now.AddDays( 1 - now.Day );
DateTime endDate = now;
string query;
query = "SELECT SUM(case when r.Type in ('Programming-Billable', 'Consulting-Billable') then r.Minutes_Spent";
query += " end) AS 'Custom Programming and Consulting',";
query += " SUM(case when r.Type in ('Data Maintenance', 'Tech Support-Billable', 'Training') then r.Minutes_Spent";
query += " end) AS 'Tech. Support / Data Maint. / Training'";
query += " FROM TK_Project p ";
query += " INNER JOIN TK_Task t";
query += " ON p.Project_ID = t.Project_ID ";
query += " JOIN TK_Time_Record r";
query += " ON t.ID = r.Task_ID";
query += " WHERE p.Company = " + Session[ "Distid" ];
query += " AND p.Name ='Technical Support' ";
query += " AND r.Work_Date BETWEEN '" + startDate + "' AND '" + endDate + "' ";
query += " AND r.Type NOT LIKE '%non%'";
DataTable data = GeneralFunctions.GetData( query );
}
クエリは現在、次の結果を返します。
Custom Programming and Consulting Tech. Support / Data Maint. / Training
90 105
編集:
SELECT SUM(case when r.Type in ('Programming-Billable', 'Consulting-Billable') then r.Minutes_Spent
end) AS 'Custom Programming and Consulting',
SUM(case when r.Type in ('Data Maintenance', 'Tech Support-Billable', 'Training') then r.Minutes_Spent
end) AS 'Tech. Support / Data Maint. / Training'
FROM TK_Project p
INNER JOIN TK_Task t
ON p.Project_ID = t.Project_ID
JOIN TK_Time_Record r
ON t.ID = r.Task_ID
WHERE p.Company = 162 AND p.Name ='Technical Support'
AND r.Work_Date BETWEEN '04/01/2001' AND '04/30/2012'
AND r.Type NOT LIKE '%non%'