現在、未払いの1つのシリーズのみのグラフタイプの列を生成できます。
mySQLでは、列名のステータスが常にこの3つの値Unpaid / Paid / Finishのいずれかになります。
各ステータス(未払い/有料/完了)の顧客数をカウントしてグラフに追加するにはどうすればよいですか?
Default.aspx
<asp:Chart ID="Chart1" runat="server" Palette="EarthTones">
<Legends>
<asp:Legend Alignment="Center" Docking="Bottom" IsTextAutoFit="False" Name="Default" LegendStyle="Row" />
</Legends>
<series>
<asp:Series Name="Unpaid" XValueMember="MONTH(paymentDate)" YValueMembers="COUNT(status)" ShadowColor="#FF9900"></asp:Series>
</series>
<chartareas>
<asp:ChartArea Name="ChartArea1">
</asp:ChartArea>
</chartareas>
</asp:Chart>
Default.aspx.cs
protected void displayGraph()
{
string Up = "Unpaid";
string month = DateTime.Now.ToString("MMMM");
MySqlConnection con = new MySqlConnection("server=localhost;userid=root;password=;database=obsystem");
con.Open();
MySqlCommand cmd = new MySqlCommand("SELECT COUNT(status),MONTH(paymentDate) FROM monthlytracker WHERE status='" + Up + "'", con);
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
Chart1.DataSource = dt;
Chart1.ChartAreas["ChartArea1"].AxisX.Title = "Payment Status";
Chart1.ChartAreas["ChartArea1"].AxisY.Title = "Amount";
Chart1.DataBind();
}
誰かが私を助けてくれませんか?
よろしくお願いします。ヘルプは大歓迎です。
次のようCOUNT
にSUM
、に置き換えます。
SELECT
SUM(CASE WHEN status='unpaid' THEN 1 ELSE 0 END) as Unpaid
, SUM(CASE WHEN status='paid' THEN 1 ELSE 0 END) as Paid
, SUM(CASE WHEN status='finished' THEN 1 ELSE 0 END) as Finished
FROM monthlytracker
WHERE ... -- the filter condition
これにより、各支払いステータスのカウントを含む3つの列が生成されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加