我在Excel Tables上使用SQL感到很开心,但无法为我想做的事情找出正确的查询。您介意为我指明正确的方向以获得以下结果吗?
我有2个表要加入:
“表3”
SN IN DATE
1 10.09.2018
2 27.08.2018
3 19.08.2018
4 20.08.2018
序列号是唯一的
“数据库”
SN REF CREATION DATE TIMESTAMP
1 AAA 11.09.2018 26.10.2018
1 AAB 11.09.2018 27.10.2018
2 ACF 11.09.2018 27.10.2018
2 CDR 11.09.2018 27.10.2018
3 ODC 11.09.2018 27.10.2018
4 RTF 11.09.2018 27.10.2018
4 IKG 11.09.2018 27.10.2018
4 RNO 11.09.2018 27.10.2018
REF确实仅属于一个SN
我想要的结果(在查询中,我包括更多列以帮助我交叉检查结果):
SN REF
1 AAB
2 ACF
2 CDR
3 ODC
4 RTF
4 IKG
4 RNO
我希望所有REF都带有TIMESTAMP = TODAY(以我今天为例,今天是2018年10月27日),并且IN DATE 这是我到目前为止提出的查询: 我认为我需要左加入,但是结果给我的是不正确的。另外,我假设需要在哪里指定“今天”的价值。
我需要帮助来建立正确的逻辑。 感谢阅读。strSQL = "SELECT [Table3$].[SN],[Table3$].[IN DATE],[Database$].[REF],[Database$].[CREATION DATE],[Database$].[TIMESTAMP] " & _
"FROM [Table3$] " & _
"LEFT JOIN [Database$] ON [Table3$].[IN DATE]<[Database$].[CREATION DATE]"
答案 0 :(得分:0)
从我的角度来看,此查询将是您想要的:
strSQL = "SELECT [Table3$].[SN], [Table3$].[ IN DATE], [Database$].[NOTIFICATION NUMBER], [Database$].[CREATION DATE], [Database$].[TIMESTAMP] " & _
"FROM [Table3$] INNER JOIN [Database$] ON [Table3$].[SN] = [Database$].[SN] " & _
"WHERE [Table3$].[ IN DATE] < [Database$].[CREATION DATE] AND [Database$].[TIMESTAMP] = Date()"
我假设TIMESTAMP
是日期字段,所以我使用过程Date
来检索当前日期。
我无法对其进行测试,但至少应该使您处于正确的轨道。
顺便说一句:我想知道IN
前面的空格是否正确:[ IN DATE]
。毕竟,您都使用过两次。