我有下面的代碼,它不應該返回任何值。有沒有人可以找到有問題的東西?當我運行腳本時,我得到了0個值(0行受到影響),儘管我知道應該選擇一些行。基於內部連接的select查詢不起作用,不返回任何內容
這只是整個腳本的一部分,當我運行所有內容時,我會收到錯誤消息「警告:空值由集合或其他SET操作消除」。但我不知道這對我的劇本意味着什麼。我在腳本中只有1個「group by」(我不在這裏發佈,因爲這個編碼工作)。有人知道嗎?
的代碼,下面,應該創建臨時表,並從表中「StatusHistorik」臨時表插入行,其中滿足以下條件:
1)[NyStatus] = 4(NyStatus是來自「StatusHistorik」表的列,
2)變量「EnhetsId」不應該存在於表「SKL_AdminKontroll_SkaÅtgärdas」(F)中。代碼:「F.EnhetsId爲null」。
我在這兩種情況下都使用了內連接。這應該會導致temp-table中的一些觀察/行,但不會返回任何結果。有沒有人發現任何編碼錯誤,可以解釋缺乏結果?
我應該提到,當我「註釋掉」最後一個內部連接和where語句的最後部分時,腳本按照它應該的那樣工作。所以我懷疑這是最後一個內部聯接聲明,它在某種程度上是錯誤的。
declare @temp2 table (
EnhetsId varchar(50),
TjanstId Int,
Tabell varchar(50),
Kommentar ntext,
Uppdaterad datetime
);
WITH ENHET_AVSLUT AS
(
SELECT DISTINCT A.[EnhetsId]
FROM [StatistikinlamningDataSKL].[dbo].[StatusHistorik] A
inner join (
select [EnhetsId], max(SenastUppdaterad) as SenastDatum
from [StatistikinlamningDataSKL].[dbo].[StatusHistorik]
group by [EnhetsId]
) B
on A.[EnhetsId] = B.[EnhetsId] and A.[SenastUppdaterad] = B.SenastDatum
INNER JOIN
StatistikinlamningDataSKL.dbo.SKL_AdminKontroll_SkaÅtgärdas F ON A.EnhetsId = F.EnhetsId
WHERE [NyStatus] = 4 AND F.EnhetsId is null
)
insert into @temp2
(EnhetsId, TjanstId, Tabell, Kommentar, Uppdaterad)
SELECT
EnhetsId, 1, ''GR_PS09_1'', ''OK'', getdate()
from ENHET_AVSLUT
select * from @temp2
最好的問候, 漢納斯
使用LEFT OUTER JOIN爲表SKL_AdminKontroll_SkaÅtgärdas。 – user2989408
謝謝!它解決了這個問題。雖然,我注意到完整的腳本仍然無法工作,我想,由於錯誤消息:警告:Null值被聚合或其他SET操作消除。 你對這個問題有什麼想法嗎? – user2995808