将sql表中的MAX值加载到DataTable中

时间:2013-11-26 20:44:35

标签: sql sql-server datatable aggregate-functions

我需要将来自SQL的聚合数据reed到.Net中,为此,我使用DataAdapterFillDataTable。查询看起来像这样:

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

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

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

这是否已知行为?我该如何解决/解决它?

1 个答案:

答案 0 :(得分:0)

我认为问题出在你的SQL中。如果不执行组BY,则不能包含聚合函数(MAX)。

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