OK-This one has perplexed me all day. It is a little complex, but I'll try to break it down.Here is one of the select statements I am running: SELECT h.projectNumber, SUM(DISTINCT f.sTotal) As "shippingCost", SUM(DISTINCT h.hTotal) As "handlingCost", (SUM(DISTINCT f.sTotal)+SUM(DISTINCT h.hTotal)) As "totalCost" FROM(SELECT projectNumber, SUM(x.theTotal) AS "sTotal"FROM (SELECT tblOrders.orderID, customerID, tblBoxes.dateShipped, tblOrders.projectNumber, tblBoxes.shippingCost AS "theTotal" FROM tblBoxes INNER JOIN tblOrders ON tblBoxes.orderID=tblOrders.orderID) xWHERE x.customerID=1 AND dateShipped>='11/01/2001' AND dateShipped<='11/30/2001'GROUP BY x.orderID, x.customerID, x.projectNumber) f,(SELECT t.projectNumber, SUM(t.Total) AS "hTotal"FROM (SELECT tblOrders.projectNumber, tblOrders.customerID, tblBoxes.dateShipped, tblOrders.orderID, tblBoxes.boxID, tblBoxType.costPerBox, tblBoxes.numberItems,CASE WHEN ((tblBoxes.numberItems * tblBoxType.costPerItem) + tblBoxType.costPerBox) > tblCustomers.maxBoxCharge THEN tblCustomers.maxBoxChargeELSE ((tblBoxes.numberItems * tblBoxType.costPerItem) + tblBoxType.costPerBox)END AS "Total"FROM tblOrders INNER JOIN tblBoxes ON tblOrders.orderID = tblBoxes.orderIDINNER JOIN tblBoxType ON tblBoxType.boxTypeID = tblBoxes.boxTypeIDINNER JOIN tblCustomers ON tblBoxType.customerID = tblCustomers.customerID) tWHERE t.customerID=1 AND dateShipped>='11/01/2001' AND dateShipped<='11/30/2001'GROUP BY t.orderID, t.projectNumber) hWHERE f.projectNumber = h.projectNumberGROUP BY f.projectNumber, h.projectNumber
The results I get from that are:Project Number Shipping Handling Total00.9602.000 43.5400 35.2000 78.7400The code above is basically a query that gets the shipping and handling results from two subqueries. Now if I run the subqueries seperately with the following code: SELECT projectNumber, SUM(x.theTotal) AS "sTotal"FROM (SELECT tblOrders.orderID, customerID, tblBoxes.dateShipped, tblOrders.projectNumber, tblBoxes.shippingCost AS "theTotal" FROM tblBoxes INNER JOIN tblOrders ON tblBoxes.orderID=tblOrders.orderID) xWHERE x.customerID=1 AND dateShipped>='11/01/2001' AND dateShipped<='11/30/2001'GROUP BY projectNumber
Project Number Shipping00.9602.000 48.6200 SELECT t.projectNumber, SUM(t.Total) AS "hTotal"FROM (SELECT tblOrders.projectNumber, tblOrders.customerID, tblBoxes.dateShipped, tblOrders.orderID, tblBoxes.boxID, tblBoxType.costPerBox, tblBoxes.numberItems,CASE WHEN ((tblBoxes.numberItems * tblBoxType.costPerItem) + tblBoxType.costPerBox) > tblCustomers.maxBoxCharge THEN tblCustomers.maxBoxChargeELSE ((tblBoxes.numberItems * tblBoxType.costPerItem) + tblBoxType.costPerBox)END AS "Total"FROM tblOrders INNER JOIN tblBoxes ON tblOrders.orderID = tblBoxes.orderIDINNER JOIN tblBoxType ON tblBoxType.boxTypeID = tblBoxes.boxTypeIDINNER JOIN tblCustomers ON tblBoxType.customerID = tblCustomers.customerID) tWHERE t.customerID=1 AND dateShipped>='11/01/2001' AND dateShipped<='11/30/2001'GROUP BY t.projectNumber
Project Number Handling00.9602.000 40.9500As you can see the results are not the same. I'm assuming the problem is with the join at the bottom, but as far as I can tell it should work. Any ideas? Thanks!