[英]zend framework 2 Db Select columns Grouping
我需要查詢數據庫
這是我的數據庫數據
CREATE TABLE IF NOT EXISTS `order_main` (
`om_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`om_raren` varchar(20) NOT NULL COMMENT 'serial number',
`om_total` int(11) NOT NULL COMMENT 'money',
`om_freight` int(11) NOT NULL COMMENT 'freight',
`om_amount` int(11) NOT NULL COMMENT 'money + freight',
`om_status` int(11) NOT NULL COMMENT 'Order Status:1)Unpaid 2)Paid 3)Cancel 4)Payment
success,
`om_created` datetime NOT NULL COMMENT 'create time',
PRIMARY KEY (`om_id`)
)
我的需求,獲取4種數據
1)未指定'om_status','om_created'= 2013-01項目計數
2)未指定'om_status','om_created'= 2013-01'sum('om_total')
3)'om_status'= 4,'om_created = 2013-01'項目計數
3)'om_status'= 4,'om_created'= 2013-01'sum('om_total')
首先,第二,我知道怎么寫,像這樣:
$select = $this->tableGateway->getSql()->select();
$select->columns(array(
'Nub' => new \Zend\Db\Sql\Expression('COUNT(*)'),
'Price' => new \Zend\Db\Sql\Expression('sum(`om_total`)'),
));
$select->where("DATE_FORMAT(`om_created`, '%Y-%m') = 2013-01");
$row = $this->tableGateway->selectWith($select)->toArray();
但是第三和第四,我不知道添加那個Sql查詢是多么愚蠢,我想要在同一個sql字符串中有4種結果
謝謝
只需添加另一個where() :
...
$select->where("DATE_FORMAT(`om_created`, '%Y-%m') = 2013-01");
$select->where("om_status = 4");
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.