SQL Server CE 3.5'选择不同的'问题

时间:2012-02-26 19:53:20

标签: c# sql-server-ce

我在使用SQL Server CE 3.5和c#

的查询时遇到问题

这是我的表格:

start      | end        | matricul
-----------+------------+---------
29/01/2012 | 29/01/2013 | 22453
29/01/2012 | 29/01/2013 | 22454
29/01/2012 | 29/01/2013 | 22455
29/01/2011 | 29/01/2012 | 22458
29/02/2012 | 29/02/2013 | 22440

这就是我想要的:

start      | end        | matricul
-----------+------------+---------
29/01/2012 | 29/01/2013 | 22453
29/01/2011 | 29/01/2012 | 22458
29/02/2012 | 29/02/2013 | 22440

执行此查询时:

string query = "SELECT DISTINCT(start) FROM mytable "

我得到相同的结果(与第一张表相同)。

我试着像这样关闭小组:

string query = "SELECT COUNT(start),end,matricul FROM mytable GROUP BY start";

但它给了我一个错误。

请提供任何帮助

2 个答案:

答案 0 :(得分:3)

如果只按“开始”分组,则不能返回“end”和“matricul” - 因为每个可能有多行。你可以返回 aggrgates (例如min或max) - 但是,我希望你只需要:

select distinct start, end, matricul
from mytable

你也可以把它写成一个小组:

select start, end, matricul
from mytable
group by start, end, matricul

或者也许:

select start, end, sum(matricul)
from mytable
group by start, end

取决于“matricul”意味着:p

答案 1 :(得分:2)

要获得您在问题中提到的3行结果集,您可能需要这样的内容:

select
    start, [end], min(matricul)
from
    tablename
group by
    start, [end]

注意方括号:end是保留字,可能会导致某些DBMS出现问题。