我确定这些问题是不满的,但我真的需要一些帮助。在过去的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