php - sql 查询对一个查询中多个定义的列进行计数

标签 php mysql sql database mysqli

我一直在浏览这个网站,试图a)更好地理解我的问题,b)找到一些帮助来解决它,但似乎我所看到的一切都与我的问题略有不同,所以我在这里寻求帮助请给一些建议:)

我有以下查询

SELECT *, 
(date_end < 1392569012) AS expired, 
(date_start > 1392569012) AS pending, 
(date_end > 1392569012 && date_start <= 1392569012) AS active 
FROM tbl_events AS event 
LEFT JOIN tbl_event_events AS ee ON event.event_id = ee.event_id
WHERE event.event_type = 5 && event.user_id = '".$user->getUserID()."'
ORDER BY expired,pending,active

它决定列表的状态。

现在我想做的是计算活跃、待处理和过期列表的数量

这是我更新的查询,但它只返回 1 行,但总和值正确?

SELECT *, 
SUM(date_end < 1392569012) AS expiredCount,
SUM(date_start > 1392569012) AS pendingCount, 
SUM(date_end > 1392569012 && date_start <= 1392569012) AS activeCount,              
(date_end < 1392569012) AS expired, 
(date_start > 1392569012) AS pending, 
(date_end > 1392569012 && date_start <= 1392569012) AS active 
FROM tbl_events AS event 
LEFT JOIN tbl_job_events AS jobvent ON event.event_id = jobvent.event_id
LEFT JOIN tbl_job_department AS jdept ON event.event_id = jdept.event_id
LEFT JOIN tbl_departments as dept ON jdept.department_id = dept.department_id 
WHERE event.event_type = 2 && event.user_id = '".$user->getUserID()."'
ORDER BY expired,pending,active 

有人可以帮我让它工作吗!

感谢您的帮助

卢克

最佳答案

由于该过滤器的 active 值为 1,其他过滤器的 active 值为 0,因此将总和添加到事件过滤器以获取满足该过滤器的行数。

SELECT *, ( SELECT  SUM(date_end > 1392569012 && date_start <= 1392569012)
FROM tbl_events AS event 
LEFT JOIN tbl_event_events AS ee ON event.event_id = ee.event_id
WHERE event.event_type = 5 && event.user_id = '".$user->getUserID()."'
ORDER BY expired,pending,active),
(date_end < 1392569012) AS expired, 
(date_start > 1392569012) AS pending, 
(date_end > 1392569012 && date_start <= 1392569012) AS active 
FROM tbl_events AS event 
LEFT JOIN tbl_event_events AS ee ON event.event_id = ee.event_id
WHERE event.event_type = 5 && event.user_id = '".$user->getUserID()."'
ORDER BY expired,pending,active

关于php - sql 查询对一个查询中多个定义的列进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21893824/

相关文章:

sql - 实际类型的值不正确地比较

php - 如何在错误提交后将文本插入到 html &lt;textarea&gt; 中?

php - javascript->php 加密解密 - 请需要说明和方法

mysql - Moodle 从数据库 : How to SELECT the first record which meets the WHERE clause? TOP 读取数据不起作用

sql - Transact-SQL 中是否有与 typedef 等效的东西?

sql - 如何将一个数字与另一个表中的数字范围连接起来

php - 从同一个表但不同时间范围检索数据的最佳方法是什么?

php - 将 Sphinx 索引数据导出到 SQL

mysql - ActiveRecord::StatementInvalid: Mysql::Error: 'user_id' ruby​​ 固定装置中的未知列 'field list'

mysql - DBVisualizer Unicode 错误