sql - SELECT 语句查找列的 SUM
问题描述
我正在尝试创建一个查询语句来查找 TaskLength 列的总和。
我尝试了很多组合,使用逗号分隔符和语句将 SQLSUM
函数放置在查询中。AND
没有SUM TaskLength
,查询工作正常。
这正在c# WPF
应用程序中使用,但我能够在 Visual Studio、服务器资源管理器查询窗口中测试查询语句。
这是我尝试过的查询:
SELECT TaskName, TaskLength FROM myTable, SUM TaskLength
WHERE TaskName='Maintenance' AND EventStartTime
BETWEEN '8/17/2019' AND '8/19/2019'
这是我的桌子:
TABLE myTable
ID TaskName EventStartTime TaskLength
318 START SHIFT 8/17/2019 11:51:00 AM 16
319 Maintenance 8/17/2019 12:07:00 PM 10
320 Part Prep 8/17/2019 12:17:00 PM 13
321 Production 8/17/2019 12:30:00 PM 117
322 Part Prep 8/17/2019 02:26:00 PM 45
323 Downtime 8/17/2019 02:28:00 PM 65
327 START SHIFT 8/17/2019 03:48:00 PM 00
328 Maintenance 8/17/2019 03:48:00 PM 25
329 Part Prep 8/17/2019 03:48:00 PM 35
330 Production 8/17/2019 03:48:00 PM 120
331 START SHIFT 8/17/2019 03:59:00 PM 10
332 Maintenance 8/17/2019 03:59:00 PM 90
我收到Incorrect Syntax Near..
错误。我希望当它正确运行时,我会得到 125 的结果。
修改了整个代码块的查询:
using (SqlConnection con = new SqlConnection(_connectionString))
{
string query = @"SELECT TaskName, SUM(TaskLength) as TaskLength FROM myTable " +
"WHERE EventStartTime BETWEEN '2019/8/17' AND '2019/8/19' GROUP BY TaskName";
using (SqlCommand cmd = new SqlCommand(query, con))
{
con.Open();
object result = cmd.ExecuteScalar(); // returns 'Downtime'
string totalMinutes = Convert.ToString(result);
}
}
我一直在进步。代码执行没有错误,除了结果从 TaskName 列返回“Downtime”,而不是我期望的 SUM(TaskLength) 中的 125。
此查询在 Visual Studio SQL 查询窗口中可以正常工作。
解决方案
SUM
是一个函数,因此您需要使用SUM(TaskLength)
以及GROUP BY
您选择的其他不属于聚合操作的字段。
尝试查询以下内容:
Query =
@"SELECT TaskName, SUM(TaskLength)
FROM myTable
WHERE TaskName='Maintenance' AND EventStartTime
BETWEEN '8/17/2019' AND '8/19/2019'
GROUP BY TaskName"
推荐阅读
- postgresql - 如何在 microk8s 集群中访问本地安装的 postgresql
- node.js - Node.js 中的 cipher.final() 函数返回什么?
- flutter - Flutter showDialog 无法进行简单测试
- spotfire - 树形图表达式中属性的语法 - spotfire Analyst 10.8
- apache - 反向代理以删除摘要身份验证
- html - Nodejs中的PUT请求问题
- cerberus - 如何使用 Cerberus 验证包含特定范围内的浮点数的列表?
- r - 如何计算R中空间数据的均方位移?
- cmake - 如何确定 CMake 函数的范围,使其无法从文件外部访问?
- json - fluentd不解析JSON日志文件条目