t-SQL查询复杂滚动个
Posted
技术标签:
【中文标题】t-SQL查询复杂滚动个【英文标题】:t-SQL query complex rolling months 【发布时间】:2015-08-06 17:36:44 【问题描述】:要求是,我们需要“生产日期”以下的记录:
today='2015-08-06 00:00:00.000'。
截至今天,production_date 仅在 7 月。
9 月,生产日期为 7 月 和 8 月。
在OCT,生产日期为7 月、8 月和 9 月 ..等等..
但一次 2016 年 1 月,生产日期仅来自 过去 6 个月。
这意味着从 2016 年 2 月,productions_date 从 2015 年 8 月到 2016 年 1 月
附加信息:
Production_date 是一个日期列。我正在根据上述条件过滤记录。
我试过了:
Production_Date > DATEADD(month, DATEDIFF(month, 0,DATEADD(MM,DATEDIFF(m,DATEADD(month, DATEDIFF(month, 0, GETDATE()),0),'2016-01-01 00:00 :00.000')-6,GETDATE())), 0)
与
Production_Date
请让我知道如何在查询中解决这个问题。
【问题讨论】:
你想要什么?查询还是自定义函数?你有什么尝试吗?你能举例说明你将如何使用它吗? 嗨 Emacs,我想要一个带有可以过滤上述条件的表达式的查询。 【参考方案1】:SELECT columnlist
FROM table
WHERE ProductionDate >= DATEADD(MONTH, -6,
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()),
0))
AND ProductionDate < DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
AND ProductioNDate >= '2015-07-01'
【讨论】:
谢谢!如果解决了您的问题,请将其标记为答案。以上是关于t-SQL查询复杂滚动个的主要内容,如果未能解决你的问题,请参考以下文章