我確定這些問題是不滿的,但我真的需要一些幫助。在過去的3個小時裏,我一直盯着這個SQL查詢,而我無法解釋它的一些邏輯。通常我不會問,但我已經到了最後期限。無法解釋這個SQL查詢
在WHERE子句中,您將看到一個If結構。從我可以看到它檢查是否採摘日期是有效的。
然而,它的措辭的方式只是看起來很奇怪,它不會總是導致一個'之間'? (If x > y AND x < z then 'Between', else 'Not Between) = 'Between'
。
而且這個'if'結果也應用於什麼對象?任何幫助表示讚賞我解釋它的最終結果變得WHERE 'Between' AND 'Between'
,剛剛doent有意義的方式......
(附:查詢是訪問書面)
SELECT
DWH_PickOrderLines_Temp.*,
IIf(DWH_PickOrderLines_Temp.WayOfTransport IN ("ON", "PD"), "Kitting " & Mid(tbl_District_Activiteit.Activiteit, 8), IIf(DWH_PickOrderLines_Temp.PickMethode IN ("K", "V"), "Picking Bulk", tbl_District_Activiteit.Activiteit)) AS Activiteit,
IIf(DWH_PickOrderLines_Temp.WayOfTransport IN ("ON", "PD"), "Kitting", tbl_District_Activiteit.[Activiteit groep]) AS [Activiteit groep],
R14_Distinct_Warehouse_Location.Proces,
R14_Distinct_Warehouse_Location.Gebouw
FROM DWH_PickOrderLines_Temp
LEFT JOIN R14_Distinct_Warehouse_Location
ON DWH_PickOrderLines_Temp.PickLocation = R14_Distinct_Warehouse_Location.PickLocation
WHERE (((IIf([DWH_PickOrderLines_Temp].[PickDateTime] >= [R14_Distinct_Warehouse_Location].[tbl_Location_Zone_District.ValidFrom]
AND [DWH_PickOrderLines_Temp].[PickDateTime] < [R14_Distinct_Warehouse_Location].[tbl_Location_Zone_District.ValidTo], "Between", "Not Between")) = "Between")
AND ((IIf([DWH_PickOrderLines_Temp].[PickDateTime] >= [R14_Distinct_Warehouse_Location].[tbl_District_Activiteit.ValidFrom]
AND [DWH_PickOrderLines_Temp].[PickDateTime] < [R14_Distinct_Warehouse_Location].[tbl_District_Activiteit.ValidTo], "Between", "Not Between")) = "Between"));
你肯定報道整個查詢完全? (tbl_Location_Zone_District和tbl_District_Activiteit的連接在哪裏?) – etsa
Jup,這是整個查詢。我注意到了缺少的連接。 – TheNiers
而且它能工作嗎? – etsa