我的加入有什么问题?

时间:2014-07-23 12:00:24

标签: sql-server stored-procedures join

我有以下程序,JOIN没有工作:

CREATE PROCEDURE afficherConsomVspVM 
     (@start DATE, @end DATE, @lun NVARCHAR (250), @splitLun NVARCHAR (250) )
AS
   SET NOCOUNT ON

   CREATE TABLE dbo.#temp (dateCollecte DATE, lun NVARCHAR (250), VMUsed FLOAT)

   INSERT INTO dbo.#temp (dateCollecte, lun, VMUsed)
      (SELECT dateCollecte, lun = @lun, VMUsed = (capacity - freeSpace)/1024
       FROM dbo.VmwareDatastore
       WHERE dateCollecte BETWEEN @start AND @end 
         AND lun LIKE '________________________________________' + @splitLun

       UNION

       SELECT dateCollecte, lun = @lun, VMUsed = usedSpace
       FROM dbo.SunZpool
       WHERE dateCollecte BETWEEN @start AND @end 
         AND id IN (SELECT lunId
                    FROM dbo.SunZpool_Luns
                    WHERE name LIKE '_____________________________' + @splitLun + '%'))

    SELECT 
        t1.dateCollecte, 
        VspUsed = MAX(t1.consumedCapacityInKB), 
        total = MAX(t1.capacityInKB)
    FROM 
        dbo.Vsp t1
    FULL JOIN 
        dbo.#temp t2 ON t1.dateCollecte = t2.dateCollecte
    WHERE 
        t1.dateCollecte BETWEEN @start AND @end 
        AND displayName = @lun
    GROUP BY 
        t1.dateCollecte

    DROP TABLE dbo.#temp
    SET NOCOUNT OFF 

我知道在临时表#temp中正确插入了值(我已经测试了该部分代码并且它有效)。在调用该过程时,我只得到最后一个SELECT,好像#temp是空的(它不是)。

为什么JOIN声明不起作用?

仅供参考,我也尝试了LEFTRIGHTFULL OUTEROUTER JOIN

0 个答案:

没有答案