我有一個在2005 SQL Server安裝中每天運行3次的選擇腳本,幾次返回表包含預期的行數但沒有任何值。整數和日期字段有零,其他的只是空白。SQL Server返回空字段
由於問題很少發生,因此無法在腳本運行時監督數據庫並且無法複製問題。我的想法是,數據庫中的其他更新導致了這個問題。有誰知道這個問題?
這裏是腳本
SELECT DISTINCT
URL.Line,
RTrim(URL.DescriptionNote) AS [DescriptionNote],
SA1.Name AS [Name1],
SP1.Designation AS [Designation1],
SA2.Name [Name2],
SP2.Designation AS [Designation2],
RL.DistanceMeters,
dbo.RouteLinkTransportModeDesc(URL.TransportModeTypeNumber) AS TransportMode,
URL.THM,
URL.FirstWorkedDate,
URL.LastWorkedDate
FROM #RequiredRouteLink URL
INNER JOIN StopPoint AS SP1
ON SP1.JourneyPatternPointGid = URL.StartsAtPointGid
INNER JOIN StopArea AS SA1
ON SP1.IsPartOfStopAreaVersionId = SA1.VersionId
INNER JOIN StopPoint AS SP2
ON SP2.JourneyPatternPointGid = URL.EndsAtPointGid
INNER JOIN StopArea AS SA2
ON SP2.IsPartOfStopAreaVersionId = SA2.VersionId
LEFT JOIN verRouteLink AS RL
ON RL.StartsAtPointGid = URL.StartsAtPointGid
AND RL.EndsAtPointGid = URL.EndsAtPointGid
AND URL.TransportModeTypeNumber = RL.TransportModeTypeNumber
WHERE URL.StartsAtPointGid <> URL.EndsAtPointGid
AND (RL.EndsAtPointGid IS NULL OR RL.DistanceMeters = 0 OR RL.DistanceMeters IS NULL)
AND RL.[DeletedDateTime] IS NULL
ORDER BY FirstWorkedDate, THM, TransportMode, Line, DescriptionNote
@user - 所有需要的都是在運行查詢以獲得「不良」結果的時間點上遇到問題之一。 – JNK 2011-03-24 15:20:46
感謝您的回答!更改爲LEFT JOIN會給我所有列中的正確數據,但是有問題的表中的數據是正確的? – user613068 2011-03-24 15:36:23
@user - 是的,但它也不會限制你的結果集。如果你正在使用'INNER JOIN'來限制你的結果在兩個表中匹配,'LEFT JOIN'不會這樣做。 – JNK 2011-03-24 15:37:56