我知道这里有几百个类似的帖子,但我已经尝试了MS Access中的所有其他方法,但仍然无法使其工作。
所以我的工作代码如下
SELECT FVR.*, V.[Week Commencing], F.Date, V.Date
FROM FVR
INNER JOIN (F
INNER JOIN V ON (F.[Week Commencing] = V.[Week Commencing]) AND (F.GUID = V.GUID))
ON (FVR.GUID = V.GUID) AND (FVR.GUID = F.GUID)
我希望的效果是展示" F"的日期。 " V"表中没有条目的表。
很抱歉在桌子上被碾压,但这是为了工作。我觉得我对如何做到这一点有很好的理解。
任何帮助都会令人惊讶,因为我现在已经把头发拉过来了一段时间。
提前干杯谢谢。
编辑它以添加完整代码,因为它会更有意义。
我基本上无法生成F(预测)中与V(访问)不匹配的数据范围我试图使用周开始和来自两者的GUID来显示未访问过的预测日期列表表,FVR表只是一个表,用于保存与GUID匹配的区域数据。 @Hogan我尝试了你的方式并最终出现语法错误,我几乎到了某个地方,然后再次丢失它。我以为我对SQL有了更多的了解。
完整代码如下
SELECT FVR.*, [Visits].[Week Commencing], [Forecast].[Forecast Date], [Visits].Date
FROM ForecastVisitRegion
INNER JOIN ([Forecast] INNER JOIN [Visits] ON ([Forecast].[Week Commencing] = [Visits].[Week Commencing])
AND ([Forecast].GUID = [Visits].GUID)) ON (FVR.GUID = [Visits].GUID)
AND (FVR.GUID = [External - Forecast].GUID)
再次感谢
Stephen Edwards
答案 0 :(得分:0)
您需要使用左连接:
SELECT FVR.*, V.[Week Commencing], NZ(V.Date,F.Date) as virtual_date
FROM FVR
LEFT JOIN F ON FVR.GUID = F.GUID
LEFT JOIN V ON FVR.GUID = V.GUID F.[Week Commencing] = V.[Week Commencing]
答案 1 :(得分:0)
我不确定为什么FVR
进入混合但您需要left Join
。
Select F.*
from F
left join V on F.[Week Commencing] = V.[Week Commencing] AND F.GUID = V.GUID
where V.GUID is null
左连接确保F
中的所有记录(匹配与否)都包含在结果集中。然后,V.GUID is null
移除V
中未找到匹配项的记录,为您留下没有匹配的F
条记录。
另一种方法是在NOT EXISTS
条款
WHERE
语句
Select F.*
from F
where not exists (select * from V where F.[Week Commencing] = V.[Week Commencing] AND F.GUID = V.GUID)