1)在原始查询的NetMon捕获中,将一个硬编码日期更改为参数引用,Excel将参数数据类型作为varchar(50)发送。
2)当我更改查询以将所有日期更改为参数引用时,只有最终参数作为varchar(50)发送,其余参数作为smalldatetime发送(与表的数据类型匹配)。
3)当我更改查询以删除子查询但没有别的时,查询返回正确,Excel发送正确的数据类型。在这种情况下,只有一个参数
4)当我将查询转储到存储过程并从同一个Excel数据连接调用时,参数都可以正常工作。
我尝试移动细胞,以便我可以看到它是JET-like problem of Excel checking the top 8 rows of data to determine datatype - 不是问题。
为什么会这样?正如我所提到的 - 难倒。
代码基本上是这样的:
SELECT Name
, Sum(Sales) AS Sales
, (SELECT SUM(Cost) FROM Costcenter where Date > ? AND Date <= ?) As Costs
FROM SalesTable
Where Date = ?
Group by name
Order by name
最后的?
(WHERE
条款中的那个让我感到悲伤。
答案 0 :(得分:0)
遇到此问题的同事发现了以下解决方法。在单元格中输入日期时,请使用以下公式:
=TEXT(EDATE('3/13/2013'),0),"MM/DD/YYYY")
不理想,但对于只需要获取数据的用户来说,这是一个快速解决方法。