Мой SQL немного ржавый, так что терпите меня.
У меня есть запрос, который объединяет два отдельных оператора, которые извлекаются из разных источников.Данные из двух операторов выбора перекрываются, но каждый из них извлекает столбец даты, который не всегда заполняется, в зависимости от источника.
Я пытаюсь найти способ удаления дублирующих записей между двумя операторами, игнорируястолбцы даты.
Например, если две или более записей имеют одинаковое имя_почты, поставщик, продукт и версию, одна из записей фильтруется независимо от столбцов даты.
SELECT DISTINCT
SYS.Netbios_Name0 as PCName,
ARP.Publisher0 as Vendor,
ARP.DisplayName0 as Product,
ARP.Version0 as Version,
replace(replace(convert(varchar,ARP.InstallDate0,120),'-',''),' 00:00:00','') as InstallDate,
replace(replace(convert(varchar,ARP.InstallDate0,120),'-',''),' 00:00:00','') as InstallDate2
FROM v_Add_Remove_Programs ARP
JOIN v_R_System SYS
ON ARP.ResourceID=SYS.ResourceID
WHERE SYS.Netbios_Name0 like 'CH-%' and InstallDate0 NOT LIKE ''
UNION
Select DISTINCT
SYS.Netbios_Name0 as PCName,
SP.CompanyName as Vendor,
SP.ProductName as Product,
SP.ProductVersion as Version,
replace(replace(convert(varchar,MARP.InstallDate0,120),'-',''),' 00:00:00','') as InstallDate,
replace(replace(convert(varchar,GSI.InstallDate0,120),'-',''),' 00:00:00','') as InstallDate2
FROM v_GS_SoftwareProduct SP
JOIN v_R_System SYS
ON SP.ResourceID=SYS.ResourceID
LEFT JOIN v_GS_Mapped_Add_Remove_Programs MARP
ON SP.ResourceID = MARP.ResourceID
AND RTRIM(LTRIM(UPPER(SP.ProductName)))
LIKE RTRIM(LTRIM(UPPER(MARP.DisplayName0)))
AND RTRIM(LTRIM(UPPER(SP.ProductVersion)))
LIKE RTRIM(LTRIM(UPPER(MARP.Version0)))
LEFT JOIN v_GS_INSTALLED_SOFTWARE GSI
ON SP.ResourceID = GSI.ResourceID
AND RTRIM(LTRIM(UPPER(SP.ProductName)))
LIKE RTRIM(LTRIM(UPPER(GSI.ProductName0)))
AND RTRIM(LTRIM(UPPER(SP.ProductVersion)))
LIKE RTRIM(LTRIM(UPPER(GSI.ProductVersion0)))
Where SYS.Netbios_Name0 Like 'CH-%'
AND (MARP.InstallDate0 NOT LIKE ''
OR GSI.InstallDate0 NOT LIKE '')
ORDER By PCName, Vendor, Product, Version