2017-04-12 73 views
0

我想创建一个SQL查询,将为我做计数,而不是在剃刀代码中,我想计算我的数据库中不同日期的数量。SQL Server CE计数组由

我发现SQL Server CE不支持count(distinct column_name),而是使用group by将是解决方案,但由于某种原因,我无法使其工作,我做错了什么?

SELECT COUNT(date) as date 
FROM Test 
GROUP BY date 

这只是计算每一个日期在我的数据库,而不是写它的不同的人外出时像下面

var totalcount = 0; 

foreach (var c in db.Query(query)) 
{ 
    var ttotalcount = c.date; 
    totalcount += ttotalcount; 
} 
<a>@totalcount<a> 

回答

1

更新 您的查询要求每个不同日期的计数。如果你想知道你有多少人需要总结他们。您可以使用SUM查询来嵌套您的查询。然后使用一个额外的列去掉“1”,以允许总结行数(这应该是你不同的日期)。日期也可以是保留字。您可能想尝试避免将其用作列名称。

SELECT SUM(New_Row) as dateSUM from (
    SELECT COUNT(date) as dateCount, 1 as New_Row FROM Test GROUP BY date 
) a 
+0

给我上'无效列名“dateCount”错误.':/ –

+0

如果你只运行'SELECT COUNT(date)作为dateCount FROM测试GROUP BY日期'你会得到同样的错误吗?另外,它是否会返回一个名为dateCount的列? – jradich1234

+0

不,但结果是数据库中的所有日期:/ @ jradich1234 –

0

可能:

SELECT COUNT(date) as [date] 
FROM Test 
GROUP BY date 

Date是一个保留字,需添加[]

+1

包围的别名不会更正此查询 – jradich1234

0

你在混淆SQL和第日期的用法。我假设原始字段被命名为日期。我还假设每个记录都有填充的日期字段。

SELECT COUNT(*) as numDates FROM Test GROUP BY date 
+0

环出'c.numDates'导致同我原来的查询:/ –