2009-05-22 72 views
0

我想知道是否有可能从一个查询使用表值,然后将它们添加到2个数据。MYSQL SUM由数量和值

这里有一些简单的表&数据可能会有所帮助。

CREATE TABLE `cartcontents` (
    `id` int(11) NOT NULL auto_increment, 
    `code` varchar(40) NOT NULL, 
    `qty` int(10) NOT NULL, 
    `price` decimal(30,2) NOT NULL, 
    `cart_id` int(11) NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `zone` (`zone_code`,`cart_id`) 
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1; 

-- ---------------------------- 
-- Records 
-- ---------------------------- 
INSERT INTO `cartcontents` VALUES ('5', '011242077783866125432', '1', '36.00', '2'); 
INSERT INTO `cartcontents` VALUES ('4', '011242077793513596890', '3', '33.00', '4'); 
INSERT INTO `cartcontents` VALUES ('6', '011242077649557011493', '1', '110.00', '4'); 
INSERT INTO `cartcontents` VALUES ('7', '011242077724922511037', '1', '177.00', '5'); 

所以我想能够收集特定cart_id总数量&总价值。

所以这就意味着如果我有3个数量字段,每个区域的总和需要是(数量*价格),然后为cart_id添加总数。

所以在上面的例子,如果我一直在寻找的值cart_id 4的值我希望我能回报将是数量= 4 &总价值= 209

希望这是有道理的,感谢,如果你能帮帮我。

回答

3

像这样的东西应该工作:

SELECT SUM(qty) AS qty, SUM(qty * price) AS total 
FROM cartcontents 
GROUP BY cart_id 
+0

神奇。不能相信这么简单的查询! – Lee 2009-05-22 01:08:48