SQL:以开始日期为基础逐日显示关联数据

SQL:以开始日期为基础逐日显示关联数据,sql,ms-access,join,Sql,Ms Access,Join,也许我的标题有误导性,但我不知道该如何表达。我有两张桌子,tblL和tblDumpER。它们根据字段SubjectNumber进行联接。这是一种一对多(tblDumpER)关系 我需要编写一个查询,为我的所有主题提供tblDumpER中与tblL中的日期关联的值。这就是说: SELECT tblL.SubjectNumber, tblDumpER.ER_Q1 FROM tblL LEFT JOIN tblDumpER ON tblL.SubjectNumber=tblDumpER.Subject

也许我的标题有误导性,但我不知道该如何表达。我有两张桌子,tblL和tblDumpER。它们根据字段SubjectNumber进行联接。这是一种一对多(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值对于每个主题都是不同的。但是,它需要显示为第1天,这样我就可以将tblDumpER.ER_Q1作为每个主题的第1天。然后我需要RandDate+1作为第2天,以此类推,直到我达到null或第84天。“愚蠢”的解决方案是编写84个查询。这显然是不切实际的。任何建议都将不胜感激

我很感激到目前为止的回复,但我认为我没有正确地解释这一点,因此以下是一些示例数据:

受试者编号和日期

10011/1/2013
1002 2013年1月8日
1003 2013年1月15日

受试者编号ER\U日期ER\U Q1

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

预期结果: (其中第1天=随机日期,第2天=随机日期+1,第3天=随机日期+2)

受试者编号第1天第1天第2天第1天第3天第1天

1001 5 6 2
10021108
1003 7 4 3


然后,这些数据将被绘制在一个图表上,X轴为Day#,Y轴为ER#Q1

  • 创建一个查询,获取每个SubjectNumber的最小日期
  • 将此查询加入现有查询,以便可以对最小日期和当前记录的日期执行DATEDIFF计算

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

请在post上标记您使用的SQL版本。谢谢