Lors de l'utilisation de plusieurs fonctions de table dans une requête comme ci-dessous, SSMS génère une erreur. En outre, le paramètre [Date] de [PRECALCPAGES_asof] est souligné en rouge. J'essaie de comprendre pourquoi cela échoue. Je pense que cela peut être lié à la façon dont le moteur SQL Server fonctionne. J'ai regardé dans la documentation sur MSDN mais malheureusement je ne sais pas quoi chercher. Pourquoi cela est-il causé et existe-t-il un moyen de contourner le problème?L'utilisation répétée d'un paramètre pour plusieurs UDF dans FROM déclenche une erreur de nom de colonne non valide.
Recherche
SELECT
[Date]
, COUNT(*)
FROM
[Warehouse].[dbo].[DimDate]
CROSS APPLY
[PROJECTS_asof]([Date])
INNER JOIN
[PRECALCPAGES_asof]([Date]) ON [PRECALCPAGES_asof].[PROJECTID] = [PROJECTS_asof].[PROJECTID]
GROUP BY
[Date]
Erreur
Msg 207, Level 16, State 1, Line 9
Invalid column name 'Date'.
Fonctions
CREATE FUNCTION [ProfitManager].[PROJECTS_asof]
(
@date DATETIME
)
RETURNS TABLE AS
RETURN
(
SELECT
[PROJECTID]
, [PROJECT]
, ...
FROM
Profitmanager.[PROJECTS_HISTORY]
WHERE
[RowStartDate] <= @date
AND
[RowEndDate] > @date
)
GO
CREATE FUNCTION [ProfitManager].[PRECALCPAGES_asof]
(
@date DATETIME
)
RETURNS TABLE AS
RETURN
(
SELECT
[PAGEID]
, [PAGENAME]
, ...
FROM
Profitmanager.[PRECALCPAGES_HISTORY]
WHERE
[RowStartDate] <= @date
AND
[RowEndDate] > @date
)
GO
merci, c'est la réponse que je cherchais! – RB84
Super, merci! Veuillez marquer la réponse comme acceptée si elle a résolu votre problème. – SAS
Savez-vous peut-être pourquoi cela fonctionne de cette façon? – RB84