我正在为特定卖家准备每周销售报告,这样他就可以在任何时候登录后看到。
使用以下代码收集当前周信息。
<?php
$dt_week_start_date = date('Y-m-d 20:00:01',strtotime("last Saturday"));
$dt_week_end_date = date('Y-m-d 20:00:00',strtotime("next Saturday"));
?>
以下查询用于从当前一周的表格中获取特定卖家的待售商品数据。如果我只是在页面上显示已售商品列表,则此查询可以正常工作。
<?php
$str_query_select = "SELECT * FROM t_product_purchase ";
$str_query_select .= " WHERE purchasedatetime BETWEEN '".$dt_week_start_date ."' AND '".$dt_week_end_date."'";
$str_query_select .= " AND sellerpkid=1";
$str_query_select .= " ORDER BY purchasedatetime DESC ";
?>
但我需要按照以下方式显示销售商品。我尝试在购买时间字段上进行GROUP BY并尝试了一些其他的东西,但它根本不起作用。请帮我解决这个问题。
Purchase Date-Time Product Price
2014-08-10 14.20.00 Item 010 $50
2014-08-10 14.20.00 Item 016 $20
------------------
Total : $70
+ Shipping : $10
- Promo Code :$ 5
------------------
Sub Total : $75
2014-08-13 09.08.10 Item 056 $20
2014-08-13 09.08.10 Item 056 $65
2014-08-13 09.08.10 Item 056 $ 5
------------------
Total : $90
+ Shipping : $15
- Promo Code :$ 5
------------------
Sub Total : $100
Total For week 2014-08-09 to 2014-08-16 : $175
数据以下列方式存储在数据库表中。所有数据仅与单一卖家有关。
买家01从运费为10美元的网站购买2件物品。促销代码折扣是5美元(因此在t_product_purchase表中添加了2个项目的2条记录以及运费和促销代码折扣)
买家02从运费为15美元的网站购买3件物品。促销代码折扣是5美元(所以t_product_purchase表中添加了3个项目的3条记录以及运费和促销代码折扣)
这是数据库表结构:
CREATE TABLE IF NOT EXISTS `t_product_purchase` (
`purchasepkid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`sellerpkid` bigint(20) unsigned NOT NULL DEFAULT '0',
`productpkid` bigint(20) unsigned NOT NULL DEFAULT '0',
`prodcatpkid` bigint(20) unsigned NOT NULL DEFAULT '0',
`extendedprice` double(10,2) NOT NULL DEFAULT '0.00',
`shippingvalue` double(10,2) NOT NULL DEFAULT '0.00',
`discountpercentage` float(6,2) NOT NULL DEFAULT '0.00',
`discountamount` float(6,2) NOT NULL DEFAULT '0.00',
`finaldiscountedamount` float(6,2) NOT NULL DEFAULT '0.00',
`quantity` smallint(6) NOT NULL DEFAULT '0',
`color` varchar(255) DEFAULT NULL,
`size` varchar(255) DEFAULT NULL,
`emailid` varchar(255) NOT NULL DEFAULT '',
`firstname` varchar(100) DEFAULT NULL,
`lastname` varchar(100) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
`city` varchar(100) DEFAULT NULL,
`state` varchar(100) DEFAULT NULL,
`country` varchar(100) DEFAULT NULL,
`zipcode` varchar(10) DEFAULT NULL,
`shippingaddress` text,
`specialnote` text,
`ipaddress` varchar(50) DEFAULT NULL,
`purchasedatetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`purchaseday` int(11) DEFAULT '0',
`purchasemonth` int(11) DEFAULT '0',
`purchaseyear` int(11) DEFAULT '0',
PRIMARY KEY (`purchasepkid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
答案 0 :(得分:1)
您可以修改您的查询以获取总价格,同时您还可以在PHP中执行其他附加功能,例如促销代码和促销代码。
这就是我的意思:
<?php
$str_query_select = "SELECT *, SUM(price_column) as gross_price FROM t_product_purchase ";
$str_query_select .= " WHERE purchasedatetime BETWEEN '".$dt_week_start_date ."' AND '".$dt_week_end_date."'";
$str_query_select .= " AND sellerpkid=1";
$str_query_select .= " GROUP BY purchasedatetime ORDER BY purchasedatetime DESC ";
?>
您现在可以进行添加和扣减:请注意:如果没有购买时间,您必须使用特定交易的唯一列进行分组。
Purchase Date-Time Price
2014-08-10 14.20.00 Gross Total : $70
+ Shipping : $10
- Promo Code :$ 5
------------------
Sub Total : $75
2014-08-13 09.08.10 Gross Total : $90
+ Shipping : $15
- Promo Code :$ 5
------------------
Sub Total : $100
Total For week 2014-08-09 to 2014-08-16 : $175
答案 1 :(得分:0)
顺便说一句,这不容易阅读吗?...
$str_query_select = " SELECT * FROM t_product_purchase WHERE purchasedatetime BETWEEN '$dt_week_start_date' AND '$dt_week_end_date' AND sellerpkid=1 ORDER BY purchasedatetime DESC; ";