【问题标题】:Load MAX value from sql table into a DataTable将 MAX 值从 sql 表加载到 DataTable
【发布时间】:2013-11-26 20:44:35
【问题描述】:

我需要将汇总的数据从 SQL 提取到 .Net 中,为此我使用 DataAdapterFillDataTable。查询看起来像这样:

SELECT ACTNUMBR AS [SegmentNumber], MAX(DSCRIPTN) AS [Description], COUNT(*) AS [UsageCount]

SegementNumber 和 UsageCount 值按预期加载到 DataTable 中,但我无法让 Description 列加载值,它保持空白(在 SQL 中运行查询确实返回值)。如果我硬编码一个值,那么它会将值加载到 DataTable 中,但是一旦我使用 MAX() 表达式,它就不会加载。

我尝试为DataTable 指定列详细信息,但没有效果。

这是已知的行为吗?我该如何修复/解决它?

【问题讨论】:

  • db中的描述列是varchar(max)还是text类型?
  • @Sico - 它是 char(60)
  • 我想我可能已经找到了这个问题,很复杂,但请暂时忽略这个问题

标签: sql sql-server datatable aggregate-functions


【解决方案1】:

我相信问题出在您的 SQL 中。如果不进行 group BY,则不能包含聚合函数 (MAX)。

SELECT ACTNUMBR AS [SegmentNumber], 
       MAX(DSCRIPTN) AS [Description], 
       COUNT(*) AS [UsageCount]
FROM   SOMETABLE
GROUP BY ACTNUMBR

【讨论】:

  • 谢谢比尔,但就像我说的(可能不够清楚),在 SQL (SSMS) 中运行查询确实会提供数据。我只显示了选择部分。
猜你喜欢
  • 2015-07-10
  • 1970-01-01
  • 1970-01-01
  • 2018-04-04
  • 1970-01-01
  • 2012-12-22
  • 2014-01-27
  • 2020-05-20
  • 1970-01-01
相关资源
最近更新 更多