0

也许我的标题具有误导性,但我不知道该如何表达这一点。我有两个表,tblL 和 tblDumpER。它们基于字段 SubjectNumber 加入。这是一个 (tblL) 对多 (tblDumpER) 的关系。

我需要编写一个查询,该查询将为我的所有主题提供一个来自 tblDumpER 的值,该值与 tblL 中的日期相关联。这就是说:

SELECT tblL.SubjectNumber, tblDumpER.ER_Q1
FROM tblL
LEFT JOIN tblDumpER ON tblL.SubjectNumber=tblDumpER.SubjectNumber
WHERE tblL.RandDate=tblDumpER.ER_DATE And tblDumpER.ER_Q1 Is Not Null

这很简单。我的问题是 tblL 的 RandDate 值对于每个主题都不同。但是,它需要显示为 Day1,因此我可以将 tblDumpER.ER_Q1 作为每个主题的 Day1。然后我需要 RandDate+1 As Day2 等,直到我达到 null 或 Day84。“愚蠢”的解决方案是编写 84 个查询。这显然是不切实际的。任何建议将不胜感激!

到目前为止,我很欣赏这些回复,但我认为我的解释并不正确,所以这里有一些示例数据:

主题号和日期

1001 2013年 1 月 1 日
1002 2013 年1 月 8 日
1003 2013 年1 月 15 日

主题编号 ER_DATE ER_Q1

1001 1/1/2013 5
1001 1/2/2013 6
1001 1/3/2013 2
1002 1/8/2013 1
1002 1/9/2013 10
1002 1/10/2013 8
1003 1/15/2013 7
1003 2013 年 1 月 16 日 4
1003 2013 年 1 月 17 日 3

期望的结果:(其中 Day1=RandDate,Day2=RandDate+1,Day3=RandDate+2)

主题编号 Day1_ER_Q1 Day2_ER_Q1 Day3_ER_Q1

1001 5 6 2
1002 1 10 8
1003 7 4 3

然后将该数据绘制在图表上,X 轴为 Day#,Y 轴为 ER_Q1

4

2 回答 2

0

我不完全确定您需要什么,但也许日历表会有所帮助。只需创建一个包含一年中所有日期的本地表,然后使用该表来加入您的日期吗?

于 2013-10-09T18:49:40.363 回答
0

我将分两步执行此操作:

  • 创建一个查询,获取每个 SubjectNumber 的 MIN 日期
  • 将此查询加入到您现有的查询中,以便您可以对 MIN 日期和当前记录的日期执行 DATEDIFF 计算。
于 2013-10-09T18:34:44.223 回答