c# - mysql从动态选择的2个单独日期中选择数据

标签 c# mysql sql

这与Winforms/C#/MYSQL有关。 我有下表:

Netty /日期

50条/2013-3-15

40/2013-11-10

30/2013-3-25

该程序允许用户选择他想要查看数据的月份,理想情况下输出应该是一个图表(我知道如何做)来展示总 Netty 与月份的关系。输出应类似于以下内容:

Netty /月

80/三月

40/11 月

有人建议我尝试一下:

var selectdataforGraph = "SELECT SUM(AMOUNT_NET) AS Amount_Net, MONTH(date_Check) as Month FROM testingproject.incomeinformation WHERE";
                var monthList = string.Join(",", selectedMonth);
                selectdataforGraph += " YEAR(date_check) = " + selected_year;
                selectdataforGraph += " AND MONTH(date_check) in (" + monthList + ")";

但是当我在数据库中运行查询时

SELECT SUM(Amount_Net) AS Amount_Net, Month(date_check) AS Selected_Month FROM testingproject.incomeinformation WHERE YEAR(date_check) AND MONTH(date_check) in (1,11);

结果是两个月的总 Amount_Net Sum,如下所示:

Amount_Net/Selected_Month

120/11

我确实尝试制作另一个表,其中已计算出每月的净金额,但由于在某些情况下我需要选择多个月份,因此包含月份的列是 varchar,该月份的一部分上面的查询不起作用。我也可以重新设计带有日期列的新表,但我觉得我已经非常接近第一个响应了。我也知道我应该使用参数来避免 sql 注入(inject),但这更多的是为了快速演示问题。

最佳答案

您需要在 SQL 语句的 where 子句之后添加 group by。否则,MySQL 只是将所有内容聚合到一行中,选择任意月份:

该行的语法是:

group by MONTH(date_Check), year(date_check)

我还建议您在选择中包含年份。

您的声明将是:

var selectdataforGraph = "SELECT SUM(AMOUNT_NET) AS Amount_Net, MONTH(date_Check) as Month, year(date_check) as Year FROM testingproject.incomeinformation WHERE";
            var monthList = string.Join(",", selectedMonth);
            selectdataforGraph += " YEAR(date_check) = " + selected_year;
            selectdataforGraph += " AND MONTH(date_check) in (" + monthList + ")";
            selectdataforGraph += " group by MONTH(date_Check), year(date_check)";

关于c# - mysql从动态选择的2个单独日期中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17747676/

相关文章:

php - 具有多个 GROUP BY 的 MySQL 查询 - 如何在 HTML 表中将一组设为列标题,一组设为行标题?

android - 如何从远程数据库获取错误报告?

php - 城市名称到地理坐标的PHP脚本?

java - 将 SQL 更改为条件或 HQL

c# - 可以在 XAML 中选择 AncestorType 的名称

c# - Automapper 在映射 1400 条记录时运行速度极慢

c# - 创建为 .Net Auth Cookie 交换自定义 token 的 Owin Auth Provider

c# - 委托(delegate)的演变

sql - 如何安全地从数据库中删除一行?

mysql - 如何从 VARCHAR 转换为 DATE