none
Создание отчета по ПК, имеющих несколько программ с выводом информацииии по одной их них RRS feed

  • Вопрос

  • Пытаюсь написать отчет, с выводом ПК пользователей, на которых установлены 1 программа  и на рабочем столе 1 ярлык, назовем "ПО1" и "Ярлык1", при чем по "ПО1" должна должна быть также выведена информация о версионности.

    Итого: Имя ПК, ФИО, Версия ПО1, 

    Есть запрос:

    Поиск ПО1 (работает - выводит ИМЯ ПК, Версию ПО1)

    SELECT DISTINCT a.Name0 AS [Имя ПК],
    c.FileVersion AS [IE Version]
    FROM v_GS_SoftwareFile c 
    INNER JOIN v_GS_SYSTEM a ON c.ResourceID = a.ResourceID 
    INNER JOIN v_R_System d ON a.ResourceID = d.ResourceID
    WHERE     (c.FileName = 'По1') AND (c.FileVersion >= '6.%')
    and  (c.FilePath like '%\Program Files\Internet Explorer\%')
    ORDER BY a.Name0

    Поиск Ярлык1 (работает, -выводит ПК и ярлык находит)

    select Distinct SYS.Name0 [Имя ПК],  
    SF.FileName [Тип ярлыка]
    From v_R_User U
    right join v_R_System SYS on sys.user_name0=u.user_name0
    right JOIN v_GS_SoftwareFile SF on SYS.ResourceID = SF.ResourceID
    Where (SF.FileName LIKE  '%Ярлык1%.lnk' OR SF.FileName LIKE  '%Яр Лык1%.url' )  
    AND (SF.FilePath LIKE 'C:\Documents and Settings\%Desktop%' 
    OR SF.FilePath LIKE 'C:\Documents and Settings\%Рабочий стол%')
    ORDER BY SYS.Name0

    Вот и бьюсь с тем, как соединить эти два условия, что бы в конечно условие вывело все ПК на которых стоит ПО1, есть Ярлык1 и выводиться информация о ПО1.

    Видел отчеты, где выводят условие наличия нескольких ПО, но без указания инф-ии по одной из них, пробовал, не получается.

    Заранее спасибо за помощь!

    28 февраля 2014 г. 14:53

Ответы

  • Можно предположить, что так:

    SELECT DISTINCT a.Name0 AS [Имя ПК]
    	,SF1.FileVersion AS [IE Version]
    	,SF2.FileName [Тип ярлыка]
    FROM v_GS_SoftwareFile SF1
    INNER JOIN v_GS_SYSTEM a ON SF1.ResourceID = a.ResourceID 
    INNER JOIN v_R_System SYS ON a.ResourceID = SYS.ResourceID
    LEFT JOIN v_R_User U on SYS.user_name0=U.user_name0
    RIGHT JOIN v_GS_SoftwareFile SF2 on SYS.ResourceID = SF2.ResourceID
    WHERE     (SF1.FileName = 'По1') AND (SF1.FileVersion >= '6.%')
    AND (SF1.FilePath like '%\Program Files\Internet Explorer\%')
    AND (SF2.FileName LIKE  '%Ярлык1%.lnk' OR SF2.FileName LIKE  '%Яр Лык1%.url' )  
    AND (SF2.FilePath LIKE 'C:\Documents and Settings\%Desktop%' OR SF2.FilePath LIKE 'C:\Documents and Settings\%Рабочий стол%')
    ORDER BY a.Name0


    28 февраля 2014 г. 18:17

Все ответы

  • Можно предположить, что так:

    SELECT DISTINCT a.Name0 AS [Имя ПК]
    	,SF1.FileVersion AS [IE Version]
    	,SF2.FileName [Тип ярлыка]
    FROM v_GS_SoftwareFile SF1
    INNER JOIN v_GS_SYSTEM a ON SF1.ResourceID = a.ResourceID 
    INNER JOIN v_R_System SYS ON a.ResourceID = SYS.ResourceID
    LEFT JOIN v_R_User U on SYS.user_name0=U.user_name0
    RIGHT JOIN v_GS_SoftwareFile SF2 on SYS.ResourceID = SF2.ResourceID
    WHERE     (SF1.FileName = 'По1') AND (SF1.FileVersion >= '6.%')
    AND (SF1.FilePath like '%\Program Files\Internet Explorer\%')
    AND (SF2.FileName LIKE  '%Ярлык1%.lnk' OR SF2.FileName LIKE  '%Яр Лык1%.url' )  
    AND (SF2.FilePath LIKE 'C:\Documents and Settings\%Desktop%' OR SF2.FilePath LIKE 'C:\Documents and Settings\%Рабочий стол%')
    ORDER BY a.Name0


    28 февраля 2014 г. 18:17
  • Бинго!

    Спасибо большое, был на правильном пути, да с объединением таблиц ошибся.

    28 февраля 2014 г. 21:27