关于下面的示例表,并牢记以下定义,
- start、end 和 timestamp 都是 unix 时间戳
- 定义:duration = ((end - start)/3600),即以小时为单位
我想得到以下mysql查询:
- 按学生分组并计算每个学生花费的所有金钱 - 即(持续时间 x 成本)
这就是我得到的,它有效,但不完整!
SELECT student, SUM(ceil(cost*(end-start)/3600)) 作为费用 从时间表按学生分组;
AND(这个不起作用,但这个想法实际上是我想要达到的)
SELECT student, SUM(SELECT ceil(cost*(end-start)/3600) FROM schedules WHEREpaid = 1) AS 费用,SUM(SELECT ceil(cost*(end-start)/3600) FROM schedules WHEREpaid = 0)作为学生按计划分组的债务;
我最大的问题是计算从今天到过去的费用以及债务,如果今天的日期大于开始并且支付仍然设置为 0
谢谢大家的想法!
样品表
id meta_id start end admin 学生导师 课程费用 支付 paydate 时间戳 18 4 1359867600 1359867690 jnc 班琼卡梅伦 2 90 1 1361521193 1359881165 19 4 1360472400 1360472490 jnc 班琼卡梅伦 2 90 1 1361521195 1359881165 20 4 1359867600 1359867690 jnc saadcore 卡梅隆 2 90 1 1361547064 1359881165 25 6 1359914400 1359919800 jnc 约翰多·卡梅伦 3 35 1 1361547080 1359893058 26 6 1360000800 1360006200 jnc 约翰多·卡梅伦 3 35 0 0 1359893058 27 6 1360087200 1360092600 jnc 约翰多·卡梅伦 3 35 0 0 1359893058