SQL LEFT JOIN 与 GROUP BY、COUNT 和 WHERE 子句 (VBA)
SQL LEFT JOIN with GROUP BY, COUNT & WHERE clause (VBA)
Microsoft Visual Basic for Applications
-
SQL LEFT JOIN with GROUP BY, COUNT & WHERE clause
问题已解决:感谢您分享 link @Vityata。下面给出更正后的代码供其他人参考。
strSQL = "SELECT A.ID, A.Reason, COUNT(B.TimeStamp)" & _
"FROM tblReasons A " & _
"Left Join " & _
"(" & _
"SELECT TimeStamp, Reason FROM tblTracker " & _
"WHERE TimeStamp > #04/11/2017# and TimeStamp < #04/14/2017# " & _
")B ON A.ID = B.Reason " & _
" GROUP BY A.ID, A.Reason"
执行以下操作。
- 转到 VBE 中的直接 window。 (Ctrl+G)。然后粘贴 strSQL 并在每一行按回车键。 (见下图)
- 然后通过输入
?strsql
并按回车键询问 VBE 它对整个事情的理解是什么。 (见下图)
- VBE 会回答。检查答案。
- 将答案作为查询放入 Access。
- 研究并找出问题所在。
总的来说,我觉得GROUP BY和LEFT JOIN有点不对,但是我应该看到数据告诉你更多。 SQL - Group By with Left Join
Microsoft Visual Basic for Applications
-
SQL LEFT JOIN with GROUP BY, COUNT & WHERE clause
问题已解决:感谢您分享 link @Vityata。下面给出更正后的代码供其他人参考。
strSQL = "SELECT A.ID, A.Reason, COUNT(B.TimeStamp)" & _
"FROM tblReasons A " & _
"Left Join " & _
"(" & _
"SELECT TimeStamp, Reason FROM tblTracker " & _
"WHERE TimeStamp > #04/11/2017# and TimeStamp < #04/14/2017# " & _
")B ON A.ID = B.Reason " & _
" GROUP BY A.ID, A.Reason"
执行以下操作。
- 转到 VBE 中的直接 window。 (Ctrl+G)。然后粘贴 strSQL 并在每一行按回车键。 (见下图)
- 然后通过输入
?strsql
并按回车键询问 VBE 它对整个事情的理解是什么。 (见下图) - VBE 会回答。检查答案。
- 将答案作为查询放入 Access。
- 研究并找出问题所在。
总的来说,我觉得GROUP BY和LEFT JOIN有点不对,但是我应该看到数据告诉你更多。 SQL - Group By with Left Join