lundi 8 mai 2017

Can't explain this SQL query

Im sure these kind of questions are frowned upon but I really need some help. For the past 3 hours I have been staring at this SQL query and I just can't explain some of the logic in it. Normally I wouldn't ask but I'm reaching a deadline.

In the WHERE clause you will see an If construction. From what I can see it checks whether or not the Picking date was valid.

However, the way it's phrased it just looks weird, doesnt it always result in a 'Between'? (If x > y AND x < z then 'Between', else 'Not Between) = 'Between'.

And on what object does this 'if' result apply too? The way I interpret it the end result becomes WHERE 'Between' AND 'Between', which just doent make sense...

Any help is appreciated (P.S. The query is written for Access)

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"));

Aucun commentaire:

Enregistrer un commentaire