【问题标题】:Query By Last month SQL按上月 SQL 查询
【发布时间】:2019-02-22 15:16:57
【问题描述】:

我想在上个月之前返回这个查询。

我的表 service_total 作为字段 date_time ,我想使用那个。

我正在搜索这个并尝试了很多方法。但我无法获得正确的语法。

SELECT service_total.total_shipments , partner.name
FROM service_total
INNER JOIN partner 
ON partner.short = service_total.partner_short
WHERE partner.local = '0' 
ORDER BY service_total.total_shipments DESC
LIMIT 5

编辑------------

关于的查询是正确的,但我希望只返回上个月的值。

想象一下表 service_total 我有 2 行。一个是十二月的,一个是一月的。自二月以来,我只想要一月的那一行。

【问题讨论】:

  • 样本数据、期望的结果以及对您需要的内容的说明会很有帮助。
  • 能否请您输入示例数据和预期输出?您的查询看起来不错。原始表中有 total_shipments 列还是需要在查询中计算?如果是第二个,那么你需要使用“group by”
  • 请检查我的编辑,谢谢:D
  • ... where ... and date_time = DATE_SUB(NOW(), INTERVAL 1 MONTH) ??
  • 是的,但是您的查询很可能不会匹配带有= 运算符@ErayBalkanli 我的查询应该是WHERE partner.local = '0' AND date_time >= NOW() - INTERVAL 1 MONTH offcource.. MySQL 允许这种语法。

标签: mysql sql


【解决方案1】:

您需要在您的陈述中包含以下条件:

  YEAR(date_time) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH)
  AND 
  MONTH(date_time) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)

所以:

SELECT service_total.total_shipments , partner.name
FROM service_total
INNER JOIN partner 
ON partner.short = service_total.partner_short
WHERE 
  YEAR(date_time) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH)
  AND 
  MONTH(date_time) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)  
  AND
  partner.local = '0'  
ORDER BY service_total.total_shipments DESC
LIMIT 5

【讨论】:

  • 感谢您的回答,但这只是最近 30 天的返回,我想要上个月的。
  • 不,它不会返回过去 30 天。它只返回上个月。
  • This: MONTH(date_time) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH) 保证行只有上个月的date_time(与YEAR(date_time) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH) 结合)。试试看。
【解决方案2】:

在where条件下使用date_time

 SELECT service_total.total_shipments , partner.name
    FROM service_total
    INNER JOIN partner 
    ON partner.short = service_total.partner_short
    WHERE partner.local = '0'  and date_time >= date(NOW() - INTERVAL 1 MONTH)
    ORDER BY service_total.total_shipments DESC
    LIMIT 5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多