SQL的新手,请耐心等待。
我有两个表,一个是Locations
表,一个是FileImport
表。
我每天获取文件,然后导入它们,然后根据Locations
表中的位置进行排序。
我常用的跟踪遗漏方法是通过Excel完成的,但必须有一个更简单的SQL方法。
我目前有以下查询:
SELECT dbo.Location.LocationDesc,
dbo.FileImport.LocationName,
dbo.FileImport.CreatedDate,
dbo.FileImport.FileName
FROM dbo.FileImport left OUTER JOIN dbo.Location
ON dbo.FileImport.LocationName = dbo.Location.LocationDesc
where CAST(dbo.FileImport.CreatedDate AS Date) = '2016-09-14'
有一些较旧的地理位置未在“地理位置”表格中使用,但目前我想在Locations
表格中找到所有地理位置 39;当天有相应的上传内容,我们将不胜感激。
干杯
答案 0 :(得分:1)
SELECT dbo.Location.LocationDesc, dbo.FileImport.LocationName, dbo.FileImport.CreatedDate, dbo.FileImport.FileName
FROM dbo.Location
left OUTER JOIN dbo.FileImport ON dbo.FileImport.LocationName = dbo.Location.LocationDesc
and CAST(dbo.FileImport.CreatedDate AS Date) = '2016-09-14'
where dbo.FileImport.LocationName is null
答案 1 :(得分:1)
试试这个,
{{1}}
答案 2 :(得分:1)
这将为您提供2016年9月14日没有文件导入的所有地点
SELECT loc.LocationDesc
FROM
dbo.Location loc
where not exists
(select null from
dbo.FileImport fi
where fi.LocationName = loc.LocationDesc
and CAST(dbo.FileImport.CreatedDate AS Date) = '2016-09-14');
答案 3 :(得分:0)
尝试以下查询。它会导致转储中出现的位置,但不会出现在 dbo.Location 表中。
SELECT fi.LocationName, fi.LocationName, fi.CreatedDate, fi.FileName
FROM dbo.FileImport AS fi
WHERE NOT EXISTS (SELECT * FROM dbo.Location AS l WHERE fi.LocationName = l.LocationDesc
AND CAST(fi.CreatedDate AS Date) = '2016-09-14'
)
答案 4 :(得分:0)
使用此查询
SELECT L.LocationDesc
,FI.LocationName
,FI.CreatedDate
,FI.FileName
FROM dbo.FileImport FI
RIGHT OUTER JOIN dbo.Location L ON FI.LocationName = L.LocationDesc
AND CAST(FI.CreatedDate AS DATE) = '2016-09-14'
WHERE FI.LocationDesc IS NULL