Не удалось связать многоэлементный идентификатор columnName - PullRequest
1 голос
/ 08 ноября 2010

Я знаю, что этот вопрос был опубликован несколько раз, но через 1 час в Google я все еще не могу заставить его работать

SELECT
    ROW_NUMBER() OVER(ORDER BY x.Year DESC, x.Month) AS ID,  
    x.*,
    Finance.fGetRates(x.XTimeStamp)
FROM 
    (  SELECT   Client,
                Month(TimeStamp) As Month,
                Year(TimeStamp) As Year,
                Day(TimeStamp) As Day,
                (dateadd(yy,(Year(TimeStamp)-1900),0)
               + dateadd(mm,Month(TimeStamp)-1,0) 
               + Day(TimeStamp)-1) AS XTimeStamp,
               Sum(KwTop) As KwTop,
               Sum(KwHeap) as KwHeap,
               Sum(KwLow) As KwLow  
      FROM Ori.vEnergyUnion  
      GROUP BY Year(TimeStamp), Month(TimeStamp),Day(TimeStamp), Client 
    ) x

LEFT OUTER JOIN Finance.fGetRates(x.XTimeStamp) Fr  
    ON Fr.ValidFrom = x.XTimeStamp 
ORDER BY Fr

Сообщение 4104, уровень 16, состояние 1, строка 19 Многоэлементный идентификатор «x.XTimeStamp» не может быть связан.

Любая помощь будет оценена, спасибо.

1 Ответ

3 голосов
/ 08 ноября 2010

Вы не можете передавать параметры в функции через JOIN.

Использование APPLY:

SELECT  ROW_NUMBER() OVER(ORDER BY x.Year DESC, x.Month) AS ID,  
        x.*,
        fr.*
FROM    (
        SELECT  Client,
                Month(TimeStamp) As Month,
                Year(TimeStamp) As Year,
                Day(TimeStamp) As Day,
                (dateadd(yy,(Year(TimeStamp)-1900),0)
                + dateadd(mm,Month(TimeStamp)-1,0) 
                + Day(TimeStamp)-1) AS XTimeStamp,
                Sum(KwTop) As KwTop,
                Sum(KwHeap) as KwHeap,
                Sum(KwLow) As KwLow  
       FROM     Ori.vEnergyUnion  
       GROUP BY
                Year(TimeStamp), Month(TimeStamp),Day(TimeStamp), Client 
       ) x
OUTER APPLY
       (
       SELECT  *
       FROM    Finance.fGetRates(x.XTimeStamp) Fr  
       WHERE   fr.ValidFrom = x.XTimeStamp 
       ) fr
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...