2
我在存儲過程和查詢窗口中有相同的代碼,但得到了不同的結果。唯一的區別是SP選擇到臨時表中,然後從臨時表中選擇並且它正在SP中運行。來自存儲過程的結果與SSMS不同查詢
SP沒有參數 - 所以它沒有參數嗅探,SP有ANSI_NULLS ON。
RecId和invoiceOrderRecId是bigints,品牌數據類型爲nvarchar(10)
SELECT
ZIOH.Brand,
Count(RecId) as NumDispatched
FROM
ZFSINVOICEORDERHISTORY ZIOH
WHERE
ZIOH.DISPATCHDATETIME >= CAST(CURRENT_TIMESTAMP AS DATE)
AND
ZIOH.DISPATCHDATETIME < DATEADD(DD, 1, CAST(CURRENT_TIMESTAMP AS DATE))
AND
ZIOH.INVOICEORDERRECID NOT IN
(SELECT
RecId
FROM
ZFSINVOICEORDER ZIO
WHERE
ZIO.PARTITION = ZIOH.PARTITION)
GROUP BY ZIOH.Brand
ORDER BY ZIOH.Brand
從查詢窗口
╔═══════╦═══════════════╗
║ Brand ║ NumDispatched ║
╠═══════╬═══════════════╣
║ CCO ║ 1 ║
║ CVDUK ║ 13 ║
║ FLX ║ 12 ║
║ MSFR ║ 74 ║
║ MSGR ║ 1 ║
║ MSUK ║ 211 ║
║ PIAFR ║ 25 ║
║ PIAUK ║ 129 ║
╚═══════╩═══════════════╝
結果結果從SP
╔═══════╦═══════════════╗
║ Brand ║ NumDispatched ║
╠═══════╬═══════════════╣
║ CCO ║ 1 ║
║ CVDUK ║ 7 ║
║ FLX ║ 12 ║
║ MSFR ║ 53 ║
║ MSUK ║ 147 ║
║ PIAFR ║ 21 ║
║ PIAUK ║ 121 ║
╚═══════╩═══════════════╝
如果用測試日期'2016-04-21'替換'CAST(CURRENT_TIMESTAMP AS DATE)',會發生什麼? –
我得到相同的結果。這是我嘗試的第一件事。 –
你在哪裏執行SP?數據庫上下文是否相同?兩個用戶是同一個用戶嗎? –