09. maj 2011 - 10:51Der er
3 kommentarer og 1 løsning
Sql udtræk laver fejl.
Jeg har en access db med en række varelinjer.
Den skal vise et udtræk med:
Varenummer Sum(uden fragt) Fragt 10100 79 49 etc.
Jeg har fået konstrueret følgende sql sætning, men den laver en fejl:
strSQL = "SELECT OrderID,OrderNumber,OrderProductNumber,OrderBuyerName,OrderBuyerPhone,SUM(OrderProductPriceSum) AS sum FROM viewOrderProduct where OrderNumber >= 101400 And OrderProductNumber <> 'FREIGHT-00' GROUP BY OrderID,SUM(OrderProductPriceSum) AS sumfreight FROM viewOrderProduct WHERE OrderNumber >= 101400 And OrderProductNumber = 'FREIGHT-00' GROUP BY OrderID,OrderNumber,OrderBuyerName,OrderBuyerPhone"
Den laver følgende fejl: [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "SUM(OrderProductPriceSum) AS sumfreight FROM viewOrderProduct WHERE OrderNumber >= 101400 And OrderProductNumber = 'FREIGHT-00' GROUP BY OrderID".
Du synes at have denne del duplikeret i din forespoergsel:
GROUP BY OrderID, SUM(OrderProductPriceSum) AS sumfreight FROM viewOrderProduct WHERE OrderNumber >= 101400 And OrderProductNumber = 'FREIGHT-00'
Proev om det virker med denne forkortede forespoergsel:
strSQL = "SELECT orderID, OrderNumber, OrderProductNumber, OrderBuyerName, OrderBuyerPhone, SUM(OrderProductPriceSum) AS sum FROM viewOrderProduct where OrderNumber >= 101400 And OrderProductNumber <> 'FREIGHT-00' GROUP BY OrderID,OrderNumber,OrderBuyerName,OrderBuyerPhone"
I hvert fald giver det ikke mening for din software. Derfor giver den fejlmelding.
Men jeg er i faerd med at kikke paa det igen. Jeg tror et af problemerne er den maade du strukturere dine data paa ved at placere oplysninger om kunder, om ordrer, og om produkter altsammen indenfor en enkelt tabel viewOrderProduct.
Den normale fremgangsmaade ville vaere at skille kundeoplysningerne ud i en saerskilt tabel med en raekke for hver kunde med id, navn, telefon (og maaske adresse, email, o.s.v.) Naar saa en kunde placerer en ordre behoever du i viewOrderProduct kun at referer til kundens id, ikke navn eller telefonnummer. (Som det er nu, hvis kunde 'Madsen' i tidens loeb placerer syv orderer, hver med fem produkter, saa vil du i viewOrderProduct 35 gange skrive at Madsen har telefon 02 12 13 14.) Ligeledes boer du ogsaa have en saerskilt tabel for ordrer med ordernummer, kundeid, og maaske orderdate og lignende, og en saerskilt tabel for de beordrede produkter med ordernummer, produktnummer, pris, o.s.v.
Har du mulighed for og vil du vaere med til at omstrukturere dine data? I saafald vil det vaere simpelt at faa trukket alle oplysninger ud du har brug for, saasom det du viser i dit oprindelige spoergsmaal. Hvis du svarer bekraeftende, saa vil jeg stille et par spoergsmaal mere saasom om fragten afhaenger af det enkelte produkt eller af den enkelte ordre (jeg ville tro det sidste.)
Hej Christian, Jeg fik en programmør til at lave en løsning for mig, som virker uden at skulle ændre databasen.
Du får pointene som tak for hjælpen med løsningen.
Hilsen Kristian
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.