我試圖根據用戶輸入按天,月或年對查詢的響應進行分組。查找帶別名的語句
要做到這一點,我從log_time
列AS when
提取日,月,或一年,然後試圖GROUP BY when
但CakePHP的說:
SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "when" LINE 1: ...2-31' GROUP BY "Passenger"."route_id", "Route"."name", when ^
這是我的函數調用的例子,其中的分組是'月'。
$fields = array(
"CONCAT(DATE_PART('year', \"Passenger\".\"log_time\"), '-', DATE_PART('month', \"Passenger\".\"log_time\")) AS when",
"Passenger.route_id",
"Route.name",
"SUM(Passenger.embarked) AS embarked"
);
$conditions = array(
"Passenger.log_time >=" => $start,
"Passenger.log_time <=" => $end
);
$group = array("Passenger.route_id", "Route.name", "\"when\"");
return $this->find('all', array('fields' => $fields, 'conditions' => $conditions, 'group' => $group));
這是使用Postgres的Cake 2.3.5。有沒有人想出瞭如何做到這一點?
也可以嘗試使用虛擬領域的記錄。這將減少這裏的複雜性。 – mark
感謝您的提示。我更新了我的代碼以使用虛擬域。它現在看起來更清潔,但問題依然存在。我現在要離開我的問題。 – MattL