我试图在图表(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 ???
答案 0 :(得分: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 + ")";