Is this what you mean?
SELECT dbo.tblProducts.ProductNam
SUM(dbo.tblOrderDetails.Qu
SUM(dbo.tblOrderDetails.Qu
FROM dbo.tblOrders INNER JOIN dbo.tblOrderDetails ON dbo.tblOrders.OrderID = dbo.tblOrderDetails.OrderI
INNER JOIN dbo.tblProducts ON dbo.tblOrderDetails.Produc
GROUP BY dbo.tblProducts.ProductNam
HAVING (dbo.tblOrders.OrderDate >= '2/25/2004') AND (dbo.tblOrders.OrderDate <= '2/27/2004')
AND dbo.tblOrders.OrderID IN
(SELECT dbo.tblOrders.OrderId,
sum(dbo.tblOrderDetails.Qu
sum(dbo.tblPayments.Paymen
FROM dbo.tblOrders INNER JOIN dbo.tblOrderDetails on dbo.tblOrders.OrderID = dbo.tblOrderDetails.OrderI
INNER JOIN dbo.tblPayments ON dbo.tblOrders.OrderID = dbo.tblPayments.OrderID
GROUP BY tblOrders.OrderID
HAVING ([Cost] <= [Paid]))
I tsill gives an error :
Server: Msg 207, Level 16, State 3, Line 1
Invalid column name 'Cost'.
Server: Msg 207, Level 16, State 1, Line 1
Invalid column name 'Paid'.
Main Topics
Browse All Topics





by: sf_rdbPosted on 2004-02-29 at 14:39:21ID: 10482403
Because you are trying to filter SUMs that are managed by a GROUP BY, you need to do the filtering in a HAVING instead of a WHERE.
Your sub-select doesn't have its own independant GROUP BY; it probably should group on "tblOrders.OrderId".
Try adding the GROUP BY and then using a HAVING clause to filter. If it still doesn't work, then copy your literal equasions you are using into the HAVING clause.