我想知道是否可以使用表值从一个查询中获取2个总和,然后将它们添加到其中。
这是一些简单的表格和数据可能有所帮助。
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的总值。
所以这意味着如果我在qty字段中有3个,则每个区域的总和需要(qty * price),然后为cart_id添加总数。
所以在上面的例子中,如果我正在寻找cart_id的值4我希望我可以返回的值是qty = 4&总价值= 209
希望这有意义,谢谢你能提供帮助。
答案 0 :(得分:3)
这样的事情应该有效:
SELECT SUM(qty) AS qty, SUM(qty * price) AS total
FROM cartcontents
GROUP BY cart_id