2013-07-09 4 views
0

Mark Bannister на этом форуме был достаточно любезен, чтобы помочь мне создать исходный запрос. Я пытаюсь пересмотреть его, чтобы включить условную логику для элементов, перечисленных в инструкции case. Цель запроса может содержать одну или другую версию определенных программных элементов. Запрос вернет любой элемент как совместимый. Можно ли включить логику в раздел «Союз» или есть ли другой способ сделать это?T-SQL Query: включить логику в оператор «ALL ALL»

SELECT MIN(CASE 
WHEN DN.Name = 'Adobe Reader XI (11.0.01)' THEN CASE ARP.Version0 WHEN '11.0.01' THEN 'Adobe Reader Compliant' ELSE 'Adobe Reader not Compliant' END 
WHEN DN.Name = 'ActivClient x86' THEN CASE ARP.Version0 WHEN '6.2' THEN 'Active Client Compliant' ELSE 'Active Client not Compliant' END 
WHEN DN.Name = 'Adobe Flash Player 11 ActiveX' THEN CASE ARP.Version0 WHEN '11.7.700.202' THEN 'Adobe Flash Player Compliant' ELSE 'Adobe Flash Player not Compliant' END 
WHEN DN.Name = 'Adobe Shockwave Player 12.0' THEN CASE ARP.Version0 WHEN '12.0.2.122' THEN 'Adobe Shockwave Compliant' ELSE 'Adobe Shockwave not Compliant' END END) as Complaint 
From (Select 'Adobe Reader XI (11.0.01)' NAME UNION ALL SELECT 'ActivClient x86' UNION ALL SELECT 'Adobe Flash Player 11 ActiveX' UNION ALL SELECT 'Adobe Shockwave Player 12.0') as DN 
CROSS JOIN dbo.v_R_System AS SYS 
LEFT JOIN dbo.v_Add_Remove_Programs AS ARP 
ON ARP.ResourceID = SYS.ResourceID AND ARP.DisplayName0 = DN.Name 
WHERE (SYS.Netbios_Name0 = @System_Name) 
GROUP BY SYS.Netbios_Name0, DN.Name 

Например, изменения в:

WHEN DN.Name = 'ActivClient x86' or DN.Name = 'ActivClient x64' THEN CASE ARP.Version0 WHEN '6.2' THEN 'Active Client Compliant' ELSE 'Active Client not Compliant' END 

ответ

0

Вы также можете поместить логику в существующие заявления МИОНа, используя различные формы. Например, вы можете заменить:

CASE ARP.Version0 WHEN '11.0.01' THEN 'Adobe Reader Compliant' 
           ELSE 'Adobe Reader not Compliant' END 

С

CASE WHEN ARP.Version0 IN ('11.0.01', '11.0.02') THEN 'Adobe Reader Compliant' 
                ELSE 'Adobe Reader not Compliant' END