这可能是一个容易回答的问题,但我无法弄清楚。使用SQL Server 2008中的导出数据选项时出现错误功能
我有这个查询,我想要导出到Excel。我遵循详细的指令here,但由于使用了前面定义的函数,因此sql查询不正确。
这是我定义的函数:我要导出到Excel
CREATE FUNCTION FullMonthsSeparation
(
@DateA DATETIME,
@DateB DATETIME
)
RETURNS INT
AS
BEGIN
DECLARE @Result INT
DECLARE @DateX DATETIME
DECLARE @DateY DATETIME
IF(@DateA < @DateB)
BEGIN
SET @DateX = @DateA
SET @DateY = @DateB
END
ELSE
BEGIN
SET @DateX = @DateB
SET @DateY = @DateA
END
SET @Result = (
SELECT
CASE
WHEN DATEPART(DAY, @DateX) > DATEPART(DAY, @DateY)
THEN DATEDIFF(MONTH, @DateX, @DateY) - 1
ELSE DATEDIFF(MONTH, @DateX, @DateY)
END
)
RETURN @Result
END
GO
这是SQL查询:
SELECT DISTINCT soc.idSocio,
(SELECT Count(*)
FROM [BaseSR].[dbo].[Movimiento] m
WHERE m.idSocio = soc.idSocio
AND m.TipoMovimiento = 1) AS CantidadDeCompras,
nombre,
(SELECT TOP 1 fecha
FROM [BaseSR].[dbo].[Movimiento] m
WHERE m.idSocio = soc.idSocio
AND m.TipoMovimiento = 1/*Consumos*/
ORDER BY fecha DESC) AS UltimoMovimiento,
dbo.Fullmonthsseparation(soc.fechaAlta, Getdate()) AS MesesDesdeAltaEnPrograma
FROM [BaseSR].[dbo].[Socio] soc
WHERE soc.idTarjeta LIKE '2001%'
这是错误消息我得到:
声明无法解析。附加信息:延迟 准备无法完成。声明无法准备。 无法找到列“dbo”或用户定义的函数或 集合“dbo.FullMonthsSeparation”,或名称不明确。
但是,当我执行查询时,它运行没有任何问题。
如果我改变了SQL查询[BaseSR].dbo.FullMonthsSeparation(...
那么错误是:
声明无法解析。附加信息:延迟 准备无法完成。声明无法准备。 无法找到列“BaseSR”或用户定义的函数或集合“BaseSR.dbo.FullMonthsSeparation”,或名称不明确。
任何想法?
我试过......它没有工作。我编辑了我的问题,添加了我得到的错误消息 – Soph
什么是'SanRoque'? - 你问题中的数据库名称是'BaseSR' –
是的,我改变了! – Soph