简体   繁体   English

每天,每周和每月的MySQL销售量

[英]MySQL sales per Day, Week and Month

Im trying to create a sales report in which the user can see sales per Day, Week and Month. 我试图创建一个销售报告,用户可以在其中查看每天,每周和每月的销售额。

This is my table: 这是我的桌子:

  CREATE TABLE IF NOT EXISTS `sales_act` (
  `id` int(11) NOT NULL auto_increment,
  `sale` decimal(10,2) NOT NULL default '0.00',
  `paymethod` smallint(2) NOT NULL default '0',
  `saledate` datetime NOT NULL default '0000-00-00 00:00:00',
  `status` smallint(2) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

INSERT INTO `sales_act` (`id`, `sale`, `paymethod`, `saledate`, `status`) VALUES
(1, '150.00', 3, '2016-07-30 14:37:25', 2),
(2, '50.00', 1, '2016-08-14 21:38:34', 1),
(3, '150.00', 3, '2016-08-15 14:23:21', 2),
(4, '100.00', 1, '2016-08-15 14:25:12', 1),
(5, '50.00', 2, '2016-08-15 14:27:31', 3);

I was reading here in stackoverflow some examples of this, but I cant seem to make it work, this is what I have so far, but doesnt work :( 我在这里在stackoverflow上阅读了一些这样的示例,但是我似乎无法使其正常工作,这是我到目前为止的工作,但是不起作用:(

$result = $mysqli->query('SELECT DATE_FORMAT(saledate, "%m-%Y") AS Month, SUM(sale) AS `salessum` WHERE `status` < 3 GROUP BY DATE_FORMAT(saledate, "%m-%Y")'); 
while ($row = $result->fetch_assoc()) {

    echo '<pre>';
print_r($row);
    echo '</pre>';

}

Can someone tell me what Im doing wrong? 有人可以告诉我我做错了什么吗? Thanks in advance!! 提前致谢!! :D :d

You missed FROM clause should use MONTH (you have already saledate as datetime) 您错过的FROM子句应使用MONTH(您已经将saledate作为日期时间)

'SELECT MONTH(saledate) AS Month, SUM(sale) AS `salessum` 
 FROM sales_act 
 WHERE `status` < 3 GROUP BY MONTH(saledate)'

You have forget to specify the database in this Line: 您忘记在此行中指定数据库:

$result = $mysqli->query('SELECT DATE_FORMAT(saledate, "%m-%Y") AS Month, SUM(sale) AS `salessum` WHERE `status` < 3 GROUP BY DATE_FORMAT(saledate, "%m-%Y")');  

Better: 更好:

$result = $mysqli->query('SELECT DATE_FORMAT(saledate, "%m-%Y") AS Month, SUM(sale) AS `salessum` FROM sales_act WHERE `status` < 3 GROUP BY DATE_FORMAT(saledate, "%m-%Y")'); 

SELECT DATE_FORMAT(saledate, "%m-%Y") AS Month, 
SUM(sale) AS `salessum` 
FROM sales_act
WHERE status < 3 
GROUP BY DATE_FORMAT(saledate, "%m-%Y")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM