Hi, I'm having a strange problem with Excel and MS Query:
I'm using MS Query to run a T-SQL query against a Microsoft SQL Server 2000 and return the results to Excel.
To do this, I open Excel, go to Data - Import external data - New database query, select my data source, paste the SQL script in MS Query and click File - Return data to Microsoft Office Excel, leaving all the query options to their defaults.
This works fine for many other Excel files, but this time although MS Query shows the correct data when I paste the SQL script, after returning to Excel all I get is the query name in the upper left cell, with no data returned.
I fear the cause could be the SQL script, as it contains some advanced functions like union all, UDFs and variables.
Here's the script:
declare @date smalldatetime
set @date = dateadd(day, datediff(day, 0, getdate()), 0)
select [date], sum([hours]) as [hours]
from
(
select [date], [hours]
from [server].[dbo].[udf] (84, '2010-01-01', @date)
union all
select [date], [hours]
from [server].[dbo].[udf] (89, '2010-01-01', @date)
union all
select [date], [hours]
from [server].[dbo].[udf] (93, '2010-01-01', @date)
) as [a]
group by [date]
order by [date] asc
I can't get rid of the UDF as inside them are done advanced groupings involving cursors and temporary tables, nor I can remove the variable as the UDF won't accept dateadd(day, datediff(day, 0, getdate()), 0) as parameter.
Any ideas?
Thanks in advance, Andrea.