【发布时间】:2020-12-22 02:31:28
【问题描述】:
所以我有这个查询,它将一个表 (VIEW_ALL_FILES) 中的软件版本与主参考表 (SRV_MASTER_VERSION_LIST) 进行比较,并通过一些逻辑来标记匹配的好坏。我只是比较软件名称(SRV_CMBNAME)。
我遇到的问题是,虽然比较似乎在某些情况下有效,但在某些情况下它不是由于 SRV_CURRENTVERSION 和 SRV_CMBRECOMMENDEDREVERSION 列的并列(见图)。
SELECT VIEW_ALL_FILES.SRV_CMBNAME,
VIEW_ALL_FILES.SRV_CMBPRODVERSION AS SRV_CURRENTVERSION,
SRV_MASTER_VERSION_LIST.SRV_UPDATEDVERSION AS SRV_CMBRECOMMENDEDVERSION,
IIf([SRV_CMBPRODVERSION]=[SRV_UPDATEDVERSION],'Current','Requires Update') AS SRV_CMBVERSIONVALIDATIONFLAG,
VIEW_ALL_FILES.SRV_CMBRELEASE,
VIEW_ALL_FILES.SRV_CMBPUBLISHER,
VIEW_ALL_FILES.SRV_CMBINSTALLDATE,
VIEW_ALL_FILES.SRV_CMBDATATYPE,
IIf([SRV_CMBRELEASE]=[SRV_UPDATEDVERSION],'Current','Requires Update') AS SRV_CMBRELEASEVALIDATIONFLAG
FROM VIEW_ALL_FILES LEFT JOIN SRV_MASTER_VERSION_LIST
ON VIEW_ALL_FILES.SRV_CMBNAME = SRV_MASTER_VERSION_LIST.SRV_CMBNAME
WHERE SRV_CMBDATATYPE = 'Software'
AND SRV_CMBPRODVERSION != ''
AND SRV_UPDATEDVERSION IS NOT NULL
AND SRV_CMBDN = 'hamburgerlane1'
GO
我不确定从连接发生的位置从哪里解决这个问题(排序,顶部?)。这里的挑战是我在两个表之间的软件名称和版本上有多对多的关系。
【问题讨论】:
标签: sql sql-server select plsql