我在使用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";
但它给了我一个错误。
请提供任何帮助
答案 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出现问题。