1
Как написать этот запрос в ZendSELECT COUNT + (SELECT COUNT FROM TABLE1 WHERE) FROM TABLE1 в Zend
SELECT COUNT(1) AS `NoOfQueries` , DATE(CONVERT_TZ(FROM_UNIXTIME(poocher.cdate, '%Y-%m-%d %T') , '-9:30', '+00:00')) AS `Dat` , COUNT(1) + (
SELECT COUNT(1)
FROM tblsmsuser poocherb4
WHERE DATE(CONVERT_TZ(FROM_UNIXTIME(poocherb4.cdate, '%Y-%m-%d %T') , '-9:30', '+00:00')) <= DATE_SUB( `Dat` , INTERVAL 1
DAY)) AS cumulative_sum
FROM tblsmsuser poocher
GROUP BY `Dat`
То, что я пытался это
$this->select = new Zend_Db_Select($this->db);
$selctSub = $this->select->from("tblsmsuser",array("count(1)"))->where("DATE(CONVERT_TZ(FROM_UNIXTIME(tblsmsuser.cdate, '%Y-%m-%d %T') , '-9:30', '+00:00')) <= DATE_SUB( Dat , INTERVAL 1 DAY)");
echo $select_query_ans = $this->select->from(array("poocher" =>"tblsmsuser"),array("NoOfQueries"=>"count(1)","Dat"=>"DATE(CONVERT_TZ(FROM_UNIXTIME(poocher.cdate,'%Y-%m-%d %T'),'-9:30','+00:00'))","cumulative_sum"=>"count(1) + (".$selctSub.")"))->group("Dat");
Выход
SELECT count(1) AS `NoOfQueries`, DATE(CONVERT_TZ(FROM_UNIXTIME(poocher.cdate,'%Y-%m-%d %T'),'-9:30','+00:00')) AS `Dat`, count(1) + (SELECT count(1) AS `NoOfQueriesb4` FROM `tblsmsuser` AS ```poocherb4`` WHERE (DATE(CONVERT_TZ(FROM_UNIXTIME(poocherb4.cdate, '%Y-%m-%d %T') , '-9:30', '+00:00')) <= DATE_SUB(Dat , INTERVAL 1 DAY)))`, count(1) AS `NoOfQueriesb4` FROM `tblsmsuser` AS `poocher` INNER JOIN `tblsmsuser` AS `` WHERE (DATE(CONVERT_TZ(FROM_UNIXTIME(poocherb4.cdate, '%Y-%m-%d %T') , '-9:30', '+00:00')) <= DATE_SUB(Dat , INTERVAL 1 DAY)) GROUP BY `Dat`
Я даже не собираюсь разбирать этот запрос, мой sql не подходит. Однако вы, скорее всего, получите прибыль от использования [Zend_Db_Expression] (http://framework.zend.com/manual/en/zend.db.select.html#zend.db.select.building.columns-expr) в этом запросе , – RockyFord
@RockyFord Большое спасибо http://framework.zend.com/manual/en/zend.db.select.html#zend.db.select.building.columns-expr сделал трюк – Wazzzy
Положите свое решение в ответ, вы можете принять свой собственный ответ. Это может помочь кому-то другому. – RockyFord