对于特定的标题,我很抱歉,我很想想一种方法来概括它,但我不是那么有知识 - 猜猜这就是我在这里问的原因......
我有一个包含数百万笔交易的表格,其中一列是执行该特定交易的部门的 ID:
+-----------------------------------+
| ID | DeptID | Amount | Date |
+-----------------------------------+
| 1 | 46 | 4.99 | 2010-01-01 |
+-----------------------------------+
| 2 | 46 | 2.99 | 2010-03-07 |
+-----------------------------------+
| 3 | 57 | 9.99 | 2010-04-04 |
+-----------------------------------+
我想执行一个查询,该查询将返回去年每个月至少包含 1 个交易的任何 1 个部门 ID(今天是 2011-07-28,我从 2010-08-01 开始到结束与 2011-07-28)
有没有办法不用多次查询就可以做到这一点?
最佳答案
SELECT DeptID, COUNT(DISTINCT MONTH(`date`)) AS month_count
FROM Transactions
WHERE `date` >= CURDATE() - INTERVAL 1 YEAR
GROUP BY DeptID
HAVING month_count = 12;
关于mySQL 选择去年每个月有交易的任何部门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6866545/