1

我试图在图表(Winforms/C#)中显示一列的总量与时间单位(在本例中为月份) - 所以这将是一个数量与时间的图表。问题是用户想要自由说 - 选择 1 月和 6 月的总数并在单个图表中比较它们(因此 1 月份的总数将表示为 6 月总数条旁边的条)。我已经在列表中捕获了选定的月份(另外,我在 for 上有图形控件),但我真正陷入困境的地方是构建 mysql 语句及其类似的东西

selectdataforGraph = "SELECT SUM(Amount_Net) AS Total FROM testingproject.incomeinformation WHERE date";

foreach (int month in selectedMonth) {
   selectdataforGraph +=  "between '" + selected_year+ "-" + month + 
   "'-1 AND '" + selected_year + "-"+month+ "-31' AND";
}

我知道它缺少一些空格和一些引号问题 - 已经运行了查询并且我想了很多但我不认为中间会起作用,因为我不知道如何处理AND它的下一部分所以如果用户选择 5 月和 8 月将介于 2007-5-01 和 2007-5-30 以及 2007-8-01 和 2007-8-30 之间?

4

1 回答 1

0

编辑:似乎 MySQL 不是你的数据库......

绝对使用参数化查询!但是......为了适应你所拥有的,所以你可以快速测试它......

我想我会使用 DATEPART 而不是 BETWEEN ....

    var selectdataforGraph = "SELECT SUM(Amount_Net) AS Total FROM testingproject.incomeinformation WHERE ";
    var monthList = string.Join(",", selectedMonth);
    selectdataforGraph += " YEAR(date) = " + selected_year;
    selectdataforGraph += " AND MONTH(date) in (" + monthList + ")";
于 2013-07-18T17:15:36.040 回答