无法使用Excel中的数据透视表中的SQL中的date列对此select进行分组
我有一个在Excel中的数据透视表,我希望能够使用SaleDate
列执行Grouping
。
但是,当我创build我的数据透视表时,右键单击字段中的一个元素,并selectGrouping...
我得到的错误:
不能在此select上分组
我想到的是因为也有
1)栏中的空白,或
2)该列不是datetypesExcel中的date
我已经把整个专栏复制到记事本++,并执行一个Find what: (a blankspace)
空白空间Find what: (a blankspace)
但没有给予任何回报,即没有空格在列中。
这留下了选项2号,因为我不能过滤Year
或Month
的SaleDate
列,它似乎实际上被解释为一个text
而不是一个Date
。
我正在使用一个SQL数据库作为源,我试图调整到招架(我的原始数据到SQL是数据typesnumeric
,因此我首先需要将其转换为varchar
,随后到date
(请注意这些是我用来调整date在SQL中的三种不同的方法我已经注意到,我保存数据的表确实是SQL中的数据typesdate
):
left(convert(date,convert(varchar,Rawdate,110),110),7) as SaleDate convert(date,convert(varchar,Rawdate,112),112) as SaleDate convert(date,convert(varchar,Rawdate,110),110) as SaleDate
按yyyy-mm
, yyyy-mm-dd
, yyyy-mm-dd
顺序返回,但是这些工作都不能在数据透视表中进行分组, 或者在Excel或Excel中Months
或year
进行过滤。
虽然我从来没有专门研究直接使用SQL-Server的Excels,但我知道SQL-Server有许多date和时间types ,不像.NET的C#less一些,或者Excel只有一个(1) 。 (2) ,SQL-Server本身的types并不相互协作,所以即使是在尝试移植到其他技术时,即使是最微小的差异,我也不会感到惊讶。 。
考虑到这一点,以及你的date转换可能失败的证据,加上你提到的链式转换,我的第一个build议是为Excel提供一个不同的datetypes ,我的第一个select是datetime或datetime2 ,是最最stream行,最完整,最类似于Excel的孤独型。
(1):它更像零,它只是一个整数,与它周围的每一个人给予特殊的待遇,他们在一半时间失败。
(2):为什么会int
/从datetime
时间罚款,但int
/从datetime2
不是…
如果您将感兴趣的领域设置为一个行,并单击列标题中的“filter”三angular形,那么通常在该数据透视筛选框的列表底部,您会看到导致问题的项目。 请注意,这可能是简单的看起来像date的文本,或者根据以下截图中的基本示例,它可能更为明显:
根据我的评论,诊断发生的另一种方法是通过只确定date中的几个项目,将它们放入一个范围,制作一个数据透视表,并查看是否可以对它们进行分组。 如果可以的话,那么你就知道这个问题确实可能是数据中的一些文字。 如果你不能,那么很可能你的文本仍然需要被转换成date…但是你需要在这里发布一些例子,以便我们给你提供关于如何把它转换成Excel可以识别的东西的build议作为约会。