2017-10-04 16 views
2

単一のクエリで3つのSELECTステートメントを使用して完璧に動作します:SQL:私は店の手順でこのクエリを持って

select dbo.fn_GetSid(@Cid,sid) as SIdPrfx, 
     dbo.fn_GetPId(@Cid, sid, pid) as PIdPrefix, 
     * 
from #tempsafety 
where (createddate >= @dateFrom or @dateFrom is null) and 
     (createddate<= @dateTo or @dateTo is null) 
order by createddate desc 

は、しかし、私は順序を変更し、年末にSIdPrfxとPIdPrefixを入れたいです

select * 
from #tempsafety 
outer apply 
     (
     select dbo.fn_GetSid(@Cid,sid) as SIdPrfx, 
       dbo.fn_GetPId(@Cid, sid, pid) as PIdPrefix 
     ) sub 
where (createddate >= @dateFrom or @dateFrom is null) and 
     (createddate<= @dateTo or @dateTo is null) 
order by createddate desc 

答えて

3

我々は、単にこれを行うことができます:あなたはouter applyと最後のスポットにそれらを取得することができるかもしれません出力

+2

Lol、最も簡単な解決法とその解決策:OPがこれを試したと仮定します – Andomar

+0

私はこれを試してみましたが、このselect *のような#tempsafety、dbo.fn_GetSid(.... – alxem

1

選択

SELECT 
    *, 
    dbo.fn_GetSid(@Cid,sid) as SIdPrfx, 
    dbo.fn_GetPId(@Cid, sid, pid) as PIdPrefix 
FROM #tempsafety 
-- -- -- 
関連する問題