You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL实现同时查询过去5周及未来5周的库存数据

问题原因分析
  • 逻辑运算符使用错误:你需要获取两个查询结果的并集(同时包含过去5周、未来5周的库存数据),应该使用OR运算符,你之前使用的AND是取两个条件的交集,不存在同时满足两个对立条件的数据,自然无返回。
  • 合并的条件本身逻辑矛盾:你尝试拼接的两个DATEDIFF判断小于5和大于5不可能同时成立,没有任何记录能匹配该规则。
正确合并写法

写法1:直接合并你已验证可用的两条语句

仅将之前的AND替换为OR即可拿到两个查询的全部结果:

SELECT * FROM Table
WHERE 
vdvInventory.Count >= CAST(DATEADD(WEEK, -5, GETDATE()) as DATE)
OR DATEDIFF(WEEK,vdvInventory.Count,GETDATE() )<5

如果你的第二条语句单独运行时返回的不是未来5周数据,将DATEDIFF的两个日期参数互换即可:DATEDIFF(WEEK,GETDATE(),vdvInventory.Count )<5

写法2:更简洁的范围判断(推荐,适配Excel自动运行场景)

直接用BETWEEN限定库存日期的范围,逻辑更清晰,后续维护不易出错:

SELECT * FROM Table
WHERE vdvInventory.Count BETWEEN 
    CAST(DATEADD(WEEK, -5, GETDATE()) AS DATE)
    AND 
    CAST(DATEADD(WEEK, 5, GETDATE()) AS DATE)

如果vdvInventory.Count字段包含时间部分,去掉CAST(... AS DATE)的转换即可,不会影响范围判断的准确性。

内容的提问来源于stack exchange,提问作者MyOwnIssues

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:18:04