我有一个表格,列出了我的平台用户的出生日期,我需要根据年龄段(18-25,25-35等)对后台统计项目进行排序。他们已经按性别分类。SQL。统计按年龄段的用户列表
这里是我的代码:
public function GenreByAge() {
$date_day = new datetime();
$date_day = $date_day->format('Y-m-d');
$sql = "SELECT count(*) as nb, id_thematique, dn
FROM qr_thematique_preco q
INNER JOIN users as u ON u.id_user = q.id_membre
WHERE u.id_part = '$this->id_part'
AND u.sexe = '$this->genre'";
switch ($this->tranche_age) {
case 1:
$sql .= AND DATE_FORMAT(dn,'%Y-%m-%d') <= date_sub(curdate(), INTERVAL 18 YEAR)
AND DATE_FORMAT(dn,'%Y-%m-%d') > date_sub(curdate(), INTERVAL 26 YEAR);
break;
case 2:
$sql .= AND dn <= date_sub(curdate(), INTERVAL 26 YEAR)
AND dn > date_sub(curdate(), INTERVAL 36 YEAR);
break;
case 3:
$sql .= AND dn <= date_sub(curdate(), INTERVAL 36 YEAR)
AND dn > date_sub(curdate(), INTERVAL 46 YEAR);
break;
case 4:
$sql .= AND dn <= date_sub(curdate(), INTERVAL 46 YEAR)
AND dn > date_sub(curdate(), INTERVAL 56 YEAR);
break;
case 5:
$sql .= AND dn <= date_sub(curdate(), INTERVAL 56 YEAR)
AND dn > date_sub(curdate(), INTERVAL 66 YEAR);
break;
但查询不返回我的数据什么。
感谢您的帮助。
是否使用的是DBMS:
或者,你可以切换规则,在你现有的条件? –