【问题标题】:How to count data from a column in database which will have 3 different values and display it in Graph?如何计算数据库中具有 3 个不同值的列中的数据并将其显示在图表中?
【发布时间】:2013-08-19 17:14:49
【问题描述】:

目前,我只能为 1 个未付费系列生成图表类型列。

在 mySQL 中,我的列名状态始终是这三个值中的任何一个未付费/付费/完成。

如何计算每种状态(未付款/已付款/完成)的客户数量并将其添加到图表中?

默认.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(); 
}

有人可以帮帮我吗?

在此先感谢您。非常感谢您的帮助。

【问题讨论】:

    标签: c# asp.net mysql graph series


    【解决方案1】:

    将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
    

    这将生成三列,其中包含每种付款状态的计数。

    【讨论】:

    • 这个查询只选择 status = 'up' 的行,所以所有的总和总是 0
    猜你喜欢
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多