如何将多个查询合并为一个?将多个查询合并为一个(报告)?
例如:
//Successful Sales:
SELECT username, count(*) as TotalSales, sum(point) as Points FROM sales where submit_date >= 1301612400 AND submit_date <= 1304204400 AND status = 1 group by username
/Return Sales:
SELECT username, count(*) as Return FROM sales where submit_date >= 1301612400 AND submit_date <= 1304204400 AND status = 2 group by username
//Unsuccessful Sales:
SELECT username, count(*) as UnsuccessfulSales FROM sales where submit_date >= 1301612400 AND submit_date <= 1304204400 AND (status = 3 OR status = 6) group by username
所以该报告是这个样子:
还有如何增加收益的百分比是多少?
注:固定SQL查询
我已经试过这样做,但不能得到它的工作?
SELECT username, TotalSales, Points, Return
FROM (
SELECT username, count(*) as TotalSales, sum(point) as Points FROM sales where submit_date >= 1301612400 AND submit_date <= 1304204400 AND status = 1 group by username
UNION
SELECT count(*) as Return FROM sales where submit_date >= 1301612400 AND submit_date <= 1304204400 AND status = 4 group by username
)
..
// Example Data Structure
CREATE TABLE IF NOT EXISTS `sales2` (
`salesid` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`point` int(11) NOT NULL,
`status` int(11) NOT NULL,
PRIMARY KEY (`salesid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
INSERT INTO `sales2` (`salesid`, `username`, `point`, `status`) VALUES
(1, 'User1', 2, 1),
(2, 'User1', 2, 1),
(3, 'User2', 11, 1),
(4, 'User2', 1, 2),
(5, 'User3', 5, 6);
场状态= 1,成功的销售和展示点
状态2 - 退货销售
状态3/6 - 不成功销售:
谢谢,第一个问题呢。我对此有所了解。 – user622378 2011-04-28 15:00:26
你可以发表你的表DDL和一些插入语句列表,这样我就可以玩了。该查询可能不会那么有效,因为我无法考虑一种方法来过滤不同字段的不同状态而不诉诸内部查询。 – 2011-04-28 15:16:37
刚刚更新了我的问题与一些插入语句列表和表 – user622378 2011-04-28 15:49:33