【发布时间】:2016-04-26 06:39:35
【问题描述】:
我正在尝试提取出发日期大于 30、60 和 90 天的 Folio ID(均来自同一个文件)。如果其中一个 ID 的日期也少于 30 天,我不希望该 ID 被拉出。 我还希望仅当该 ID 的出发日期也大于 30、60 或 90 天时才为具有空白(null?)出发日期的 Folio ID 提取日期。
我尝试了左、内、右和嵌套连接的多种组合(感谢上一个问题提供的答案)。我已经接近了,但由于某种原因,我的查询没有提取任何空白出发日期,即使我知道它们存在。到目前为止,我的查询如下:
sSQL = "SELECT t1.[Folio Type], t1.[Folio ID],t1.[Departure Date],t1.[Folio Total]"
sSQL = sSQL & " FROM"
sSQL = sSQL & " (SELECT [Folio Type], [Folio ID],[Folio Total],[Departure Date]"
sSQL = sSQL & " FROM [Individual Folios$B2:O150000] GROUP BY [Folio Type],[Folio ID],[Folio Total],[Departure Date]"
sSQL = sSQL & " HAVING [Folio Total] <> 0 and [Departure Date] < " & G30E & ") As t1 "
sSQL = sSQL & " LEFT JOIN"
sSQL = sSQL & " (SELECT [Folio Type],[Folio ID],[Departure Date],[Folio Total]"
sSQL = sSQL & " FROM [Individual Folios$B2:O150000]"
sSQL = sSQL & " group by [Folio Type],[Folio ID],[Departure Date],[Folio Total]"
sSQL = sSQL & " HAVING [Folio Total] <> 0 and ([Departure Date] > " & G30E & " or [Departure Date] is null)) as t2"
sSQL = sSQL & " on t1.[Folio ID] = t2.[Folio ID]"
sSQL = sSQL & " where t2.[Folio ID] is null"
我也有一个使用嵌套连接的类似查询(尝试完成与第一个查询相同的事情)。我认为这两个查询应该提取相同的值,但总数不同:
sSQL = "SELECT t1.[Folio Type], t1.[Folio ID],t1.[Departure Date],t1.[Folio Total]"
sSQL = sSQL & " FROM"
sSQL = sSQL & " ((SELECT [Folio Type], [Folio ID],[Folio Total],[Departure Date]"
sSQL = sSQL & " FROM [Individual Folios$B2:O150000] GROUP BY [Folio Type],[Folio ID],[Folio Total],[Departure Date]"
sSQL = sSQL & " HAVING [Folio Total] <> 0 and [Departure Date] < " & G30E & ") As t1 "
sSQL = sSQL & " LEFT JOIN"
sSQL = sSQL & " (SELECT [Folio Type],[Folio ID],[Departure Date],[Folio Total]"
sSQL = sSQL & " FROM [Individual Folios$B2:O150000]"
sSQL = sSQL & " group by [Folio Type],[Folio ID],[Departure Date],[Folio Total]"
sSQL = sSQL & " HAVING [Folio Total] <> 0 and [Departure Date] > " & G30E & ") as t2"
sSQL = sSQL & " on t1.[Folio ID] = t2.[Folio ID])"
sSQL = sSQL & " LEFT JOIN"
sSQL = sSQL & " (SELECT [Folio Type],[Folio ID],[Departure Date],[Folio Total]"
sSQL = sSQL & " FROM [Individual Folios$B2:O150000]"
sSQL = sSQL & " group by [Folio Type],[Folio ID],[Departure Date],[Folio Total]"
sSQL = sSQL & " HAVING [Folio Total] <> 0 and [Departure Date] is null) as t3"
sSQL = sSQL & " on t1.[Folio ID] = t3.[Folio ID]"
sSQL = sSQL & " where t2.[Folio ID] is null or t3.[Folio ID] is null"
非常感谢任何帮助。
【问题讨论】: