如何按日期从访问数据库中查询总和

Posted

技术标签:

【中文标题】如何按日期从访问数据库中查询总和【英文标题】:How to query sum from access db by date 【发布时间】:2020-06-15 23:42:37 【问题描述】:

我的表单加载事件有查询,将显示总销售额,

given dbase value

lbldate.Text = DateTime.Now.ToString("dd/M/yyyy");
try

    MyConN.Open();
    OleDbCommand Cmd = new OleDbCommand();
    Cmd.Connection = MyConN;
    Cmd.CommandText = "Select Sum(TotalSales) from LSales where DISTINCT SDate='" + "label7.Text" + "'";
    //OleDbDataReader ReadeR = Cmd.ExecuteReader();

catch(Exception ex)

    MessageBox.Show("Error:  " + ex.Message);



but this code throwing 
>"syntax error (missing operator) in query expression `'DISTINCT SDate='16/6/2020''` 

i want to sum all `totalsales` base on date

【问题讨论】:

您应该从查询中删除 DISTINCT。 @chetan,删除 DISTINCT 错误仍然存​​在,数据类型不匹配 你试过sql server中的查询吗? @sajid,因为我没有尝试使用 access 作为数据库 对我来说,你有两个问题,第一个提到了@ChetanRanpariya,第二个是label7.Text 周围的双引号,这应该可以:SELECT SUM(TotalSales) as Total FROM LSales WHERE SDate='" + label7.Text + "'" 【参考方案1】:

    distinctselect 一起使用,而不是where

    SDate='" + "label7.Text" + "'" 不好。如果sdate 是日期时间,请执行

Cmd.CommandText = "Select Sum(TotalSales) from LSales where SDate=?";
Cmd.Parameters.Add(new OleDbParameter("@1", DateTime.Parse(label7.Text)));

换句话说,请确保您通过日期。那你就不用担心类型转换了。您可能需要确保比较日期。记住可能存在的分钟和秒数。 This is good reference for you

【讨论】:

以上是关于如何按日期从访问数据库中查询总和的主要内容,如果未能解决你的问题,请参考以下文章

Django 查询 - 如何按日期过滤总和?

如何编写从多个表中获取多行数量总和的查询?

MYSQL按日期累积总和[重复]

按日期分组的 MySQL 累积总和

SQL 查询 - 多个日期范围

如何从年月日的总和中提取日期分量乘以iOS中的某个整数?