c# - 计算与特定日期相关的 mysql 数据库中的多个值

标签 c# mysql sql winforms datagridview

我正在为办公室内部使用构建 C# winforms 应用程序。我的主表中有 10 多个列,并且有 40 多个用户更新了不同的值。

举个例子

用户 1 更新了表中的名称、贷款类型、贷款编号 user2 更新表,包含名称、贷款类型、贷款编号

时间和日期记录在每行中的时间戳列值

这是我的数据库设计

+---------+------+-------------+---------------------+
| loanid  | type   |    name   |     timestamp       |  and more 8 columns left >>
+---------+------+-------------+---------------------+
| 1       | new    |   diana   | 2014-10-02 14:59:21 |
| 2       | new    |   diana   | 2014-10-03 09:05:09 |
| 3       | sec    |   smith   | 2014-10-03 09:05:09 |
| 4       | new    |   kim     | 2014-10-03 09:06:23 |
| 5       | new    |   kim     | 2014-10-03 09:22:34 |
| 6       | new    |   katie   | 2014-10-03 09:35:23 |
| 7       | sec    |   kim     | 2014-10-03 10:03:08 |
| 8       | sec    |   diana   | 2014-10-03 10:20:15 |
+---------+------+-------------+---------------------+

举个例子,我想计算戴安娜今天输入了多少新贷款和多少秒贷款,并将其显示在数据 GridView 上

像这样我想计算另外 8 列中的值并显示 datagridvire

例如我在另一列中有颜色(黑色,白色)

我想计算戴安娜今天输入了多少黑色值,并在一个数据 GridView 中显示今天有多少新贷款和多少白色洛纳斯戴安娜更新

我试过这个但是它一次只检索一个值

SELECT name,type, COUNT(*) FROM loans 
where type= 'new    '
GROUP BY name, type;

我只想显示今天的主菜。应该使用 datetimepicker 选择日期


无论如何,我设法用这段代码清点了我所有的元素

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `allcounter`()
BEGIN 
SELECT username, COUNT(IF(status='hold',1,null)) 'hold',
       COUNT(IF(status='complete',1,null)) 'complete',
       COUNT(IF(loantype='fha',1,null)) 'fha',
COUNT(IF(loantype='ca',1,null)) 'ca',
COUNT(IF(loantype='idf',1,null)) 'idf',
COUNT(IF(loantype='slan',1,null)) 'slanl',
COUNT(IF(status='hold',1,null)) 'hold',
COUNT(IF(status='complete',1,null)) 'complete',
COUNT(IF(status='route',1,null)) 'route',
COUNT(IF(status='route(*)',1,null)) 'route(*)',
COUNT(IF(neworsecond='new',1,null)) 'new',
COUNT(IF(neworsecond='Second',1,null)) 'Second'
FROM loans
WHERE DATE(submittimestamp) = DATE(@p)
group by username;

END

但现在我想过滤我的结果等于我表单中的日期时间选择器。我在我的 dtp (10/23/2014) 和我的数据库中使用了短格式,我将时间存储为 (2014-10-23 10:20:15) this.i 实现了以下方法,但它不起作用

string constring = string.Format("datasource='{0}';port='{1}';database='{2}';username=uwadminview;password=**************;Connect Timeout=180;Command Timeout=180", dbserverip.Text, portnumber.Text, dbname.Text);
            MySqlConnection conwaqDatabase = new MySqlConnection(constring);


            MySqlCommand cmdwaqDatabase = new MySqlCommand("call allcounter DATE(@p)", conwaqDatabase);


            DateTime dateTimeValue = tdtp.Value;
            cmdwaqDatabase.Parameters.AddWithValue("@P", dateTimeValue);

            try
            {
                MySqlDataAdapter sda = new MySqlDataAdapter();
                sda.SelectCommand = cmdwaqDatabase;
                dbdataset = new DataTable();
                sda.Fill(dbdataset);
                reportingDGV.DataSource = dbdataset;
            }

            catch (Exception ex)
            {
               MessageBox.Show(ex.Message);   
            }

            conwaqDatabase.Close();

谁能告诉我如何解决这个新问题

最佳答案

最后我设法统计了特定日期的所有用户记录。以日期为参数直接从表单调用mysql过程

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `allcounter`(IN datestamp DATE)
BEGIN
SELECT username, 
       COUNT(IF(status='hold',1,null)) 'hold',
       COUNT(IF(status='complete',1,null)) 'complete',
       COUNT(IF(status='route',1,null)) 'route',
       COUNT(IF(status='route(*)',1,null)) 'route(*)',
       COUNT(IF(loantype='fha',1,null)) 'fha',
       COUNT(IF(loantype='va',1,null)) 'va',
       COUNT(IF(loantype='grh',1,null)) 'grh',
       COUNT(IF(loantype='conventional',1,null)) 'conventional',
       COUNT(IF(purpose='Refinance',1,null)) 'Refinance',
       COUNT(IF(purpose='Purchase',1,null)) 'Purchase'

FROM loans
WHERE DATE(submittimestamp) = datestamp
group by username;

   END

关于c# - 计算与特定日期相关的 mysql 数据库中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26515650/

相关文章:

c# - 无法打开 Web 项目,因为未安装 IIS Express(即使已安装)

c# - 如何在 .net 中有条件地继承类

mysql - 分组 MySQL 结果

mysql - 从mysql获取今天和昨天的数据

php - 是否有根据列类型执行 MySQL 数据验证和清理的 PHP 库?

C# 获取第一次出现的子字符串的索引

c# - 处理实现 IDisposable 的成员

mysql - mysql中的TABLE_LIST结构在哪里?

php - 很多人访问网站会导致数据库过载吗?

Mysql 案例 - 统计特定时间内的字段数