SELECT Styles.Style, ; sum(IIF(Orders.Acc = "HOUSE" and (not Approved == "" OR not App_Date = {}), ; Or_Items.qty-Or_Items.shiped-Or_Items.can_qty, 000000000.00)) as nHouseQty, ; sum(IIF(Orders.Acc = "HOUSE" and (not Approved == "" OR not App_Date = {}), ; 000000000.00, Or_Items.qty-Or_Items.shiped-Or_Items.can_qty)) as nCustomerQty ; from Styles INNER JOIN Or_Items ON Styles.Style = Or_Items.Style ; INNER JOIN Orders ON Or_Items.PON = Orders.PON ; WHERE &lcWhere ; group by 1 INTO CURSOR Dummy readwritewhere lcWhere is
[Styles.In_Stock <=1 ] + ; [and not Styles.Style IN ("F","S","X","D","M", "CD", "PK") ] + ; [and not "." $ Styles.Style and Styles.DisContinu = "A"]AFAIK Styles has an index (IDX) on Style, OR_Items has an index on Style, Orders has an index on PON. I also tried to first select info from Styles, then join with two others - it is still very slow.