查找表中的任何日期是否在 2 个日期之间

问题描述

我有一个 sql 查询,我需要找出与特定客户相关的表中的任何日期是否在不同表中的另一个日期与该日期加 5 天之间

我有一个包含客户详细信息列表(客户表)的表格,其中包含客户名称、地址和 ID (PK) 字段

我有一个包含年度评估详细信息的表格,我们在其中查看客户帐户(评估表),其中包含字段评估日期和评估 ID (pk)

我是一个单独的表格,其中包含我们与客户(会议表格)交谈的日期列表,其中包含会议名称(例如会议类型 1、会议类型 2、会议类型 3)会议日期、会议 ID (PK)

我们可以在一年中多次见到客户参加不同的会议,但是我需要一个问题来告诉我是或否,是否在 5 天的年度评估中与客户进行了交谈。

所以我需要像下面这样的东西

Select 
        Client_ID (PK) (from client table),Client_Name (from client table),Assessment_ID (PK) from assessment table,Assessment_date (from assessment table)

那么在这里我需要一些东西来说明,如果会议表中与该客户相关的所有日期中的任何一个都在评估日期的 5 天内,如果是,则为“是”,如果不是“否”

我可以在需要时加入所有相关表,这只是我正在努力处理的会议表中评估日期和评估日期 + 5 之间的任何日期的查询

任何帮助,非常感谢。

解决方法

注意以下几点很有趣:

  • 如果客户表与评估表有关系,那么您可以在两者之间进行内部连接,找出 X 客户的评估结果。

  • 如果您现在已经有了这种关系,请执行内部联接、Exists 或 IN 以验证客户 X 是否存在于会议表中。

  • 如果不能通过PK建立这种关系,这是数据结构的问题,因为没有参考会议表中的客户,我没有找到建立这种关系的方法在您的文本中。

  • 假设您已经完成了我上面提到的所有操作,只需为您的代码创建一个CASE

例如:

enter image description here

注:我不是很明白这两个表的日期相关的过滤点,所以就这样把WHERE留了,

客气。

,

类似的东西。

SELECT  CustomerData,CASE
             WHEN DATEDIFF(DAY,MeetingDate,GETDATE()) < 5 THEN 'Yes'
             ELSE 'No'
         END AS CustomerConsultedLastFiveDays
FROM    CustomerMeetingTable
WHERE   Conditions = Conditions;

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...