29. november 2006 - 17:28Der er
5 kommentarer og 1 løsning
MySql SUM(Felt2 * Felt2)
Hej Eksperter,
jeg har et underligt problem med dette kald:
Set rs = Conn.Execute("SELECT tblshop_order.ID,InvoiceID,ShopID,Completed,Firstname,Lastname,SUM(tblshop_order_items.ItemCount * tblshop_order_items.ItemPrice) AS Total FROM tblshop_order INNER JOIN tblshop_order_items ON (tblshop_order_items.OrderID = tblshop_order.ID) GROUP BY tblshop_order.ID
Problemet er at når jeg eksekverer det i mit ASP script får jeg ingen records retur, men når jeg kører kaldet direkte på MySql'en giver den det rigtige resultat, hvad kan der være galt?
I får lige den korte udgave: Set rs = Conn.Execute("SELECT SUM(tblshop_order_items.ItemCount * tblshop_order_items.ItemPrice) AS Total FROM tblshop_order INNER JOIN tblshop_order_items ON (tblshop_order_items.OrderID = tblshop_order.ID) GROUP BY tblshop_order.ID
Du siger du ingen records får retur, er det fordi recordcount = 0 eller er recordsættet EOF?? Det er nemlig ikke altid recordcount er opdateret lidt afhængig af hvilken cursor du anvender
Jeg bruger ikke ADO, og dermed ingen cursor type, jeg benytter som du kan se en Execute på forbindelsen. Der tjekkes på EOF, og den er true ved ovennævnte kald.
Det er et alm. recordset, som jeg har lavet det 1000 gange før, men af en eller anden grund returnerer den intet ligeså snart jeg forsøger at lave "SUM(tblshop_order_items.ItemCount * tblshop_order_items.ItemPrice) AS Total". Jeg bruger MySql Front til at vedligeholde min MySql, og når den får min query kommer der de rigtige records frem.
Så fandt jeg løsningen: CAST(SUM(tblshop_order_items.ItemCount * tblshop_order_items.ItemPrice) AS UNSIGNED) AS Total
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.