1
CREATE TABLE #AvailableDate (
    CustomKey INT IDENTITY (1,1),
    SelectedFaceID INT,
    FromDate DATETIME,
    ToDate DATETIME,
    TempDate DATETIME,
    Diff INT)

INSERT INTO #AvailableDate(SelectedFaceID, FromDate, ToDate, TempDate, Diff)
    SELECT
        SelectedFaceID,
        FromDate,
        ToDate,
        (SELECT TOP 1 ToDate FROM #AvailableDate WITH(NOLOCK) ORDER BY #AvailableDate.CustomKey DESC),
        (SELECT DATEDIFF(
                    d,
                    ToDate,
                    (SELECT TOP 1 ToDate FROM #AvailableDate ORDER BY CustomKey DESC)
                )
        )
    FROM
        SelectedFace WITH(NOLOCK)

在这里,我没有得到SELECT TOP 1 ToDate FROM #AvailableDate WITH(NOLOCK) ORDER BY #AvailableDate.CustomKey DESC上述查询中的值或任何与#AvailableDate

4

1 回答 1

0

您正在创建一个全新的临时表并期望它具有一些值,因为您正在对刚刚创建的同一个表进行选择。只有在您填充它之后,值才会存在。

您仍然可以使用临时表,但您必须重新安排批次并首先进行插入,然后使用 TempDate 和 Diff 字段更新记录。

于 2012-12-17T06:48:02.307 回答