Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 试图在两者之间找到_Sql_Sql Server - Fatal编程技术网

Sql 试图在两者之间找到

Sql 试图在两者之间找到,sql,sql-server,Sql,Sql Server,数据样本 ACCOUNT STATUS EFF_DT EXP_DT 1234 C 15Jun2018 31Dec9999 1234 A 14Oct2015 15Jun2018 C表示他们取消了。 EFF_DT指取消日期 EXP_DT也是他们的取消日期。我想知道他们是否在我们联系他们后的8到14天内取消。现在我能看到他们是否在1-30之间取消了联系 我有一个SQL代码,其中说明了联系日期+30。因此,联系日期后30天的结果: AND B.E

数据样本

ACCOUNT  STATUS  EFF_DT     EXP_DT
1234     C       15Jun2018  31Dec9999
1234     A       14Oct2015  15Jun2018
C表示他们取消了。 EFF_DT指取消日期 EXP_DT也是他们的取消日期。我想知道他们是否在我们联系他们后的8到14天内取消。现在我能看到他们是否在1-30之间取消了联系

我有一个SQL代码,其中说明了
联系日期+30
。因此,联系日期后30天的结果:

AND B.EFF_DT <= (A.CONTACT_DT+30)

AND B.EXP_DT > (A.CONTACT_DT+30)
和B.EFF_DT(A.CONTACT_DT+30)
我需要在寻找中间范围方面的帮助。 所以我想找到8到14之间的联系人


因此,在联系8天后和联系14天后查找结果。

在这种情况下,您使用两个不同的字段来匹配您的日期,请尝试以下方法:

    b.eff_dt between dateadd(day,8,a.contact_dt) and dateadd(day,14,a.contact_dt) 
and b.exp_dt between dateadd(day,8,a.contact_dt) and dateadd(day,14,a.contact_dt)

根据您的示例代码,以及它为您所做的解释,您可以适当地将其更改为8天和14天

AND B.EFF_DT <= DATEADD(DAY,8,A.CONTACT_DT)  --not sure if you want 8 or 14 here
AND B.EXP_DT > DATEADD(DAY,14,A.CONTACT_DT)  --not sure if you want 8 or 14 here
@黎明685

试试这个。我假设CONTACT_DT是一个日期列,因此使用DATEADD函数可以添加8天或14天。 此外,这里发生的是EFF_DT在合同日期+8和合同日期+14之间,或者EXP_DT在合同日期+8和合同日期+14之间

AND 
(
B.EFF_DT BETWEEN DATEADD(DAY, 8, A.CONTACT_DT) AND DATEADD(DAY, 14, A.CONTACT_DT) 
OR
B.EXP_DT BETWEEN DATEADD(DAY, 8, A.CONTACT_DT) AND DATEADD(DAY, 14, A.CONTACT_DT) 
)

你能提供样本数据和预期结果吗?所以我们可以很容易地帮助你。当你这么说的时候,在8天的接触和14天的接触之间寻找结果。这是基于exp_dt还是eff_dt?顺便说一句,你真的应该使用我提供的示例数据
DATEADD
,不是吗?和B.EFF_DT(在A.CONTACT_DT+8和A.CONTACT_DT+14之间)仅校正移除运算符。如下:-和B.EFF_DT(在A.CONTACT_DT+8和A.CONTACT_DT+14之间)和B.EXP_DT(在A.CONTACT_DT+8和A.CONTACT_DT+14之间)我在A.SUBS_NO=B.SRC_系统订户134和B.EFF_DT上得到这些错误133(在A.CONTACT_DT+8和A.CONTACT_DT+14之间)uu22 76错误22-322:语法错误,应为以下之一:“,”,JOIN。错误76-322:语法错误,语句将被忽略。
AND 
(
B.EFF_DT BETWEEN DATEADD(DAY, 8, A.CONTACT_DT) AND DATEADD(DAY, 14, A.CONTACT_DT) 
OR
B.EXP_DT BETWEEN DATEADD(DAY, 8, A.CONTACT_DT) AND DATEADD(DAY, 14, A.CONTACT_DT) 
)