Matthew,

>CREATE PROCEDURE 'xxxxx'.'CrossSelling' ()
>BEGIN
>SELECT TOP 5 OrderDetails.ProductID, OrderDetails.ProductName, Count(OrderDetails.ProductID) AS CountOfProductID
>FROM OrderDetails
>WHERE (((OrderDetails.OrderID) In (select OrderID from OrderDetails where ProductID=[pid])))
>GROUP BY OrderDetails.ProductID, OrderDetails.ProductName
>HAVING (((OrderDetails.ProductID)<>[pid]))
>ORDER BY Count(OrderDetails.ProductID) DESC;
>END

MySQL syntax != MSSQL syntax. No TOP in MySQL---use LIMIT (and it's slower). Also IN(SELECT...) is abysmally slow. For alternatives see "The unbearable slowness of IN()" at http://www.artfulsoftware.com/infotree/queries.php.

PB

-----

Matthew Stuart wrote:
Hi, I have several procedures that I have taken from an old Microsoft database, and I have tired to use them in a MySQL 5.1.32 database, but I am getting errors when trying to input them. There are three in total that I am struggling with and would appreciate some guidance...

This is a cross selling query:

CREATE PROCEDURE 'xxxxx'.'CrossSelling' ()
BEGIN
SELECT TOP 5 OrderDetails.ProductID, OrderDetails.ProductName, Count(OrderDetails.ProductID) AS CountOfProductID
FROM OrderDetails
WHERE (((OrderDetails.OrderID) In (select OrderID from OrderDetails where ProductID=[pid])))
GROUP BY OrderDetails.ProductID, OrderDetails.ProductName
HAVING (((OrderDetails.ProductID)<>[pid]))
ORDER BY Count(OrderDetails.ProductID) DESC;
END

Error is: 1064

'5 OrderDetails.ProductID, OrderDetails.ProductName, Count(OrderDetails.ProductID' at line 3



If somebody could give me an idea of what is wrong here with regards to it working with MySQL, I might be able to make the other two problem functions work with out too many tears.

Thanks.

Mat
------------------------------------------------------------------------


No virus found in this incoming message.
Checked by AVG - www.avg.com Version: 8.0.238 / Virus Database: 270.12.2/2074 - Release Date: 04/22/09 08:49:00

  • 1064 errors Matthew Stuart
    • Re: 1064 errors Peter Brawley

Reply via email to