Avatar billede htx98i17 Professor
17. november 2001 - 15:56 Der er 6 kommentarer og
2 løsninger

SUM()

SELECT *,SUM(salgsPris) AS beloeb FROM tblorders GROUP BY ordrenr ORDER BY time DESC

Ovenstående skal hente alle ordre ud og finde det samlede beløb i hver ordre...
Men den ligger ikke rigtigt sammen

Feltet salgsPris er float(11,2) og har så eksempelvis en værdi der hedder 10.96

Hva skal jeg gøre for at få det til at virke...
Avatar billede limemedia Nybegynder
17. november 2001 - 16:19 #1
Jeg har lige testet med en
SELECT *, SUM(price) FROM sumtest GROUP BY roworder
query på dette datasæt

# phpMyAdmin MySQL-Dump
# version 2.2.1
# http://phpwizard.net/phpMyAdmin/
# http://phpmyadmin.sourceforge.net/ (download page)
#
# Host: localhost
# Generation Time: Nov 18, 2001 at 12:07 AM
# Server version: 3.23.43
# PHP Version: 4.0.6
# Database : `test`
# --------------------------------------------------------

#
# Table structure for table `sumtest`
#

CREATE TABLE sumtest (
  id tinyint(3) unsigned NOT NULL auto_increment,
  price float(10,2) NOT NULL default \'0.00\',
  text tinytext NOT NULL,
  roworder tinyint(4) NOT NULL default \'1\',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

#
# Dumping data for table `sumtest`
#

INSERT INTO sumtest VALUES (1, \'50.10\', \'1\', 1);
INSERT INTO sumtest VALUES (2, \'10.20\', \'1\', 2);
INSERT INTO sumtest VALUES (3, \'20.80\', \'222\', 2);
INSERT INTO sumtest VALUES (4, \'100.00\', \'22\', 3);


og det virkede fint


Hvad synes at være dit problem ?
Avatar billede henrik_ffc Nybegynder
17. november 2001 - 16:21 #2
Jeg har også testet uden at kunne finde nogen fejl....?
Avatar billede htx98i17 Professor
17. november 2001 - 16:26 #3
dont know, det er mig der spørger :)

hvis jeg laver query\'en uden AS beloeb , så skriver den jo slet ik noget...

men altså der er jo en ordrelinje for hver vare der er bestilt. Og hver linje har et beløb. Det beløb skal ligges sammen til et samlet beløb hvor ordrenr er ens...

den kommer med nogle resultater, men det er ikke de rigtige...
Avatar billede htx98i17 Professor
17. november 2001 - 16:31 #4
i dit eksempel skal roworder 2 være:
10.20 + 20.80 = 31
Avatar billede proaccess Nybegynder
18. november 2001 - 08:20 #5
Prøv med:

SELECT ordrenr, SUM(salgsPris) AS beloeb FROM tblorders GROUP BY ordrenr ORDER BY time DESC

Eller har MySql det godt med GROUP BY og udvalg på * ???

Avatar billede limemedia Nybegynder
18. november 2001 - 08:39 #6
htx >> har du noget data vi kan lege med ? jeg kan ikke genere den fejl du omtaler ?
Avatar billede mortenfn Nybegynder
18. november 2001 - 11:59 #7
htx >> din select er ok - må vi se noget base
Avatar billede htx98i17 Professor
18. november 2001 - 19:59 #8
ej, undskyld undskyld undskyld...

Jeg havde glemt at gange med \"antal\"...(DOH)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester