嵌套选择中没有临时表的数据

时间:2012-12-14 10:12:57

标签: sql

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相关的任何价值

1 个答案:

答案 0 :(得分:0)

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

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