2016-11-21 184 views
0

我对数据库测试SQL查询:http://www.dofactory.com/sql/sandboxSQL - 使用相同的密钥“的元素”已经存在于ExpandoObject

我查询...

select datepart(dd, orderdate), sum(totalamount) 
from [order] 
group by datepart(dd, orderdate) 
order by datepart(dd, orderdate) 

但我得到的错误

Error: An element with the same key '' already exists in the ExpandoObject.

如果删除任一select datapart(dd, orderdate)sum(totalamount)部分查询运行正常。

有人可以解释发生了什么?

+2

您正在使用哪个数据库管理系统? –

+0

我不确定。它是位于我发布的dofactory链接上的测试数据库。您应该可以通过以下链接测试运行查询 – esafresa

+1

您不提供列名称('表达式AS名称')。因此,最终会在对象中产生两个无名属性,这是不允许的,因为对象成员名称必须是唯一的。混合一些命名的爱。 (请注意,这不是* SQL错误 - SQL不关心你是否给列命名,这是来自对象关系映射层的错误,它使用'ExpandoObject'来存储结果。) –

回答

0

该错误本质上是重复的列名称错误,因为这些列都是聚合并且没有名称。

尝试:

select datepart(dd, orderdate) AS a, sum(totalamount) AS b 
from [order] 
group by datepart(dd, orderdate) 
order by datepart(dd, orderdate) 
相关问题