赞
踩
字段 | 含义 |
---|---|
consume_time | 消费时间 |
name | 姓名 |
amount | 消费金额 |
开始时间 | 结束时间 | |
---|---|---|
上午 | 00:00:00 | 09:00:00 |
中午 | 09:00:00 | 16:00:00 |
下午 | 16:00:00 | 23:59:59 |
字段 | 含义 |
---|---|
amNum | 早餐用餐人数 |
noonNum | 中午用餐人数 |
pmNum | 晚餐用餐人数 |
diningNum | 用餐总人数 |
diningAmount | 用餐总金额 |
SELECT SUM(amNum) AS amNum, SUM(noonNum) AS noonNum, SUM(pmNum) AS pmNum, SUM(diningNum) AS diningNum, SUM(diningAmount) AS diningAmount FROM ( SELECT COUNT(*) AS amNum, NULL AS noonNum, NULL AS pmNum, NULL AS diningNum, NULL AS diningAmount FROM canteen WHERE consume_time >= 开始时间 AND consume <= DATEADD(DAY, 1, 结束时间) AND CONVERT(VARCHAR, consume_time, 8) BETWEEN '00:00:00' AND '09:00:00' UNION ALL SELECT NULL AS amNum, COUNT(*) AS noonNum, NULL AS pmNum, NULL AS diningNum, NULL AS diningAmount FROM canteen WHERE consume_time >= 开始时间 AND consume <= DATEADD(DAY, 1, 结束时间) AND CONVERT(VARCHAR, consume_time, 8) BETWEEN '09:00:00' AND '16:00:00' UNION ALL SELECT NULL AS amNum, NULL AS noonNum, COUNT(*) AS pmNum, NULL AS diningNum, NULL AS diningAmount FROM canteen WHERE consume_time >= 开始时间 AND consume <= DATEADD(DAY, 1, 结束时间) AND CONVERT(VARCHAR, consume_time, 8) BETWEEN '16:00:00' AND '23:59:59' UNION ALL SELECT NULL AS amNum, NULL AS noonNum, NULL AS pmNum, COUNT(*) AS diningNum, ISNULL(ABS(SUM(amount), 0)) AS diningAmount FROM canteen WHERE consume_time >= 开始时间 AND consume <= DATEADD(DAY, 1, 结束时间) ) AS canteenBoard
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。