Andrew Zahn wrote:
I am using MS Access to read from a MySQL database. The query
generated through access listed below returns incorrect data when
executed in Access and doesn't work at all in MySQL. I believe it has
to Last() and with the # symbols around the date. Any insight into
this problem would be greatly appreciated.
SELECT ReturnTbl.ComponentID, ReturnTbl.PartDescription,
Sum(ReturnTbl.Quantity) AS SumOfQuantity, Last(CompVendorListTbl.Cost)
AS LastOfCost
FROM ReturnTbl LEFT JOIN CompVendorListTbl ON ReturnTbl.ComponentID =
CompVendorListTbl.ComponentID
WHERE (((ReturnTbl.Date)<#2/1/2006#))
GROUP BY ReturnTbl.ComponentID, ReturnTbl.PartDescription,
ReturnTbl.USL, ReturnTbl.RtnMfgr
HAVING (((Sum(ReturnTbl.Quantity))<>0) AND ((ReturnTbl.USL)=0) AND
((ReturnTbl.RtnMfgr)=0))
ORDER BY ReturnTbl.PartDescription;
MySQL has no Last() function. You need a subquery (eg SELECT MAX(cost)
FROM CompVendorListTbl WHERE componentid=returntbl.componentid), or one
of the tricks described at
http://dev.mysql.com/doc/refman/5.1/en/example-maximum-column-group-row.html,
or one of the tricks described under 'Within-Group Aggregates' at
http://www.artfulsoftware.com/queries.php.
Surround date literals with '', not ##. MySQL will not expect a US date
format unless you apply explicit formatting.
PB
-----
Thanks,
Andrew Zahn
--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.4/363 - Release Date: 6/13/2006
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]