gpt4 book ai didi

Mysql-一张表两个查询在一条语句中

转载 作者:行者123 更新时间:2023-11-29 07:58:28 25 4
gpt4 key购买 nike

我有一个表来存储客户费用,例如

Card_id   |   days          | ytl(expense-$)  
1 2014-05-21 50
2 2014-06-12 30
2 2014-06-13 20
3 2014-05-13 20
3 2014-06-20 20
3 2014-05-13 35
3 2014-06-20 26

我需要 5 月和 6 月每月支出超过 40 美元的人员。

SELECT DISTINCT card_id
FROM expenses
WHERE date(days) > DATE("2014-05-01")
AND date(days) < DATE("2015-06-30")
GROUP BY card_id HAVING SUM(YTL) >= 40

这个查询总共给了我两个月的时间。所以它返回card_id:1-2-3。我只需要 3

我无法使用相交,因为我正在使用MySql。我尝试了内部联接,但无法解决。

我该怎么做?

最诚挚的问候

最佳答案

一种方法:-

SELECT card_id
FROM
(
SELECT card_id, MONTH(days) AS card_month, SUM(YTL) as card_sum
FROM expenses
WHERE days BETWEEN "2014-05-01" AND "2015-06-30"
GROUP BY card_id, card_month
HAVING card_sum >= 40
) sub0
GROUP BY card_id
HAVING COUNT(*) = 2

它有一个子查询,用于获取每个月每张卡的总和,使用 HAVIING 检查每个月的总和是否超过 40。

然后检查此子查询以查找计数为 2 的卡片(即子查询中该汽车的 2 行,每个月 1 行)。

如果您需要更大的日期范围,您可能需要对此进行调整,以考虑到子查询结果中 2 年内具有相同的月份数。

关于Mysql-一张表两个查询在一条语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24486941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com