這可能是一個容易回答的問題,但我無法弄清楚。使用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