【问题标题】:Get lifetime sales by city in Magento在 Magento 中按城市获取终身销售额
【发布时间】:2014-01-28 03:22:46
【问题描述】:

我第一次面对庞大的 Magento 数据库。对于 Magento 的所有内容,不止一张表:sales_X,其中 X 可以取 6 个值,呵呵。我正式迷路了。我希望能够从 Magento 记录中获取以下信息,但坦率地说,我不知道从哪里开始。

这是我需要提取的(加利福尼亚州):

City | County | Tax Rate | Tax Dollar Amount Collected | Total City Sales Amount

Example: Santa Monica | Los Angeles | 9.5% | $95.00 | $1,000

如果有人可以帮助我,我将不胜感激。如果可以使用管理网格来实现这一点,那么指向那个方向也可以。

【问题讨论】:

  • 数据库中的实际列是什么?
  • 我不知道。我是 Magento 的新手。例如,在某些表格中,我看到超过 4 个与税收相关的字段。我真的迷路了。
  • SELECT * FROM sales_1 UNION SELECT * FROM sales_2 UNION SELECT * from sales_n;
  • 感谢您的评论,但我无法完全理解您的解决方案。
  • 好吧,您需要的信息可能位于不同的表中,然后您需要使用连接。你熟悉这个概念吗?

标签: mysql database magento


【解决方案1】:

我想你需要这个作为帐单地址:

SELECT `city`, `region`, `tax_percent`, SUM(`tax_amount`), SUM(`grand_total`) 
FROM `sales_flat_order_address` 
LEFT JOIN `sales_flat_order` ON `sales_flat_order_address`.parent_id = `sales_flat_order`.entity_id 
WHERE `address_type` = 'billing' 
GROUP BY `tax_percent`, `city`

如果你想要它基于送货地址:

SELECT `city`, `region`, `tax_percent`, SUM(`tax_amount`), SUM(`grand_total`) 
FROM `sales_flat_order_address` 
LEFT JOIN `sales_flat_order` ON `sales_flat_order_address`.parent_id = `sales_flat_order`.entity_id 
WHERE `address_type` = 'shipping' 
GROUP BY `tax_percent`, `city`

【讨论】:

  • 你很快就会成为我的英雄,呵呵。我可以在我的 Grid 中使用该 SQL 语法还是必须将其转换为 Magento "languaje"?
  • 在你的 _prepareCollection 开头: $collection = Mage::getModel('sales/order_address');然后左加入销售/订单表(不记得语法)然后用 $collection-> getSelect() ->group('tax_percent, city');和 $collection->addExpressionAttributeToSelect('tax_sum', new Zend_Db_Expr('SUM(tax_amount)', array()); $collection->addExpressionAttributeToSelect('grand_total_sum', new Zend_Db_Expr('SUM(grand_total)',数组());
  • 发票没有该信息?这个想法是获得终身销售,我真的很困惑。我应该从订单或发票中获取这些信息吗?
猜你喜欢
  • 2015-02-26
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多