Hallo,
folgendes Szenario:
Ich arbeite mit dem SCCM 2012 und möchte eine SQL Abfrage erstellen die mir eine Kombination aus verschiedenen Daten über einen jeweiligen PC + zugeordnetem User + installiertem Windows mit Installationsdatum und installiertem Office + Installationsdatum liefert.
Viele der Daten habe ich inzwischen zusammen, es hapert aber an der Office Version + Installationsdatum.
Das Problem verschärft sich durch die Tatsache, dass der in der Tabelle abgespeicherte Wert für das Installationsdatum teilweise durch verschiedene Office Updates überschrieben wurde. Aus diesem Grund will ich in einer SubQuery nach sämtlichen Office Produkten suchen, den ältesten Wert herausfiltern und diesen in der Hauptabfrage dann anzeigen.
(Nach diversen Tests passt das Datum dann ziemlich genau.)
Zum einen habe ich mir eine SQL Abfrage gebaut welche mir Geräte- ID, Name, User, OS, OS-Datum usw liefert.
Und zum anderen eine separate SubQuery erstellt welche mir das jeweilige Installationsdatum zu einer entsprechenden ResourcenID liefert. (also das älteste Installationsdatum eines Produktes welche mit 'Microsoft Office%' beginnt. Ich weiß das ist nicht optimal, aber ich habe keine andere Möglichkeit gefunden und für meine Zwecke reicht es aus)
Problem ist jetzt diese beiden Abfrage zu verknüpfen.. da komme ich nicht weiter.
Meine Hauptabfrage sieht wie folgt aus:
Die SubQuery ist folgende:
Beide Abfragen für sich funktionieren wie erwartet.
Aber wie füge ich das jetzt zusammen? In der Hauptabfrage benötige ich also zusätzlich "v_GS_ADD_REMOVE_PROGRAMS.[DisplayName0]/[Version]/[InstallDate0]" von der entsprechenden Auswahl die die SubQuery liefert.
(Es müssen in der Hauptabfrage als Ergebnis natürlich ALLE Geräte angezeigt werden, auch wenn dort keine Office Version installiert ist.)
Ich wäre sehr dankbar wenn mir da jemand helfen könnte. Komme einfach nicht weiter an der Stelle.
Falls noch zusätzliche Infos über Aufbau, Struktur oder so benötigt werden einfach Fragen, dann ergänze ich das gerne noch.
Vielen Dank schon mal
folgendes Szenario:
Ich arbeite mit dem SCCM 2012 und möchte eine SQL Abfrage erstellen die mir eine Kombination aus verschiedenen Daten über einen jeweiligen PC + zugeordnetem User + installiertem Windows mit Installationsdatum und installiertem Office + Installationsdatum liefert.
Viele der Daten habe ich inzwischen zusammen, es hapert aber an der Office Version + Installationsdatum.
Das Problem verschärft sich durch die Tatsache, dass der in der Tabelle abgespeicherte Wert für das Installationsdatum teilweise durch verschiedene Office Updates überschrieben wurde. Aus diesem Grund will ich in einer SubQuery nach sämtlichen Office Produkten suchen, den ältesten Wert herausfiltern und diesen in der Hauptabfrage dann anzeigen.
(Nach diversen Tests passt das Datum dann ziemlich genau.)
Zum einen habe ich mir eine SQL Abfrage gebaut welche mir Geräte- ID, Name, User, OS, OS-Datum usw liefert.
Und zum anderen eine separate SubQuery erstellt welche mir das jeweilige Installationsdatum zu einer entsprechenden ResourcenID liefert. (also das älteste Installationsdatum eines Produktes welche mit 'Microsoft Office%' beginnt. Ich weiß das ist nicht optimal, aber ich habe keine andere Möglichkeit gefunden und für meine Zwecke reicht es aus)
Problem ist jetzt diese beiden Abfrage zu verknüpfen.. da komme ich nicht weiter.
Meine Hauptabfrage sieht wie folgt aus:
Code:
SELECT
tab_System.ResourceID
,MIN(tab_System.Name0) as [Device Name]
,MIN(tab_System.description0) as [AD Description]
,MIN(tab_System.User_Name0) as [Last logged on User]
,MIN(v_GS_COMPUTER_SYSTEM.Model0) as [Device Type]
,MIN(v_GS_OPERATING_SYSTEM.Caption0) as [Operating System]
,MIN(v_GS_OPERATING_SYSTEM.InstallDate0) as [OS InstallDate]
FROM
v_R_System tab_System
LEFT JOIN v_GS_COMPUTER_SYSTEM on v_GS_COMPUTER_SYSTEM.ResourceID = tab_System.ResourceID
LEFT JOIN v_FullCollectionMembership on v_FullCollectionMembership.ResourceID = tab_System.ResourceID
LEFT JOIN v_GS_OPERATING_SYSTEM ON v_GS_OPERATING_SYSTEM.ResourceID = tab_System.ResourceID
/*WHERE
v_FullCollectionMembership.CollectionID = 'CM000085' AND
v_GS_WORKSTATION_STATUS.LastHWScan >= Dateadd(day, -40, getdate()) AND*/
GROUP BY tab_System.ResourceID
ORDER BY [Device Name]
Die SubQuery ist folgende:
Code:
SELECT tab_ARPrograms.ResourceID
,MIN(tab_ARPrograms.InstallDate0) InstDate
FROM
[DB_CM0].[dbo].[v_GS_ADD_REMOVE_PROGRAMS] tab_ARPrograms
INNER JOIN(
SELECT [ResourceID]
,MIN([InstallDate0]) InstallDate
FROM [DB_CM0].[dbo].[v_GS_ADD_REMOVE_PROGRAMS]
WHERE
v_GS_ADD_REMOVE_PROGRAMS.[DisplayName0] like 'Microsoft Office%' AND
v_GS_ADD_REMOVE_PROGRAMS.[InstallDate0] != ''
GROUP BY [ResourceID]
) ss on tab_ARPrograms.ResourceID = ss.ResourceID and tab_ARPrograms.InstallDate0 = ss.InstallDate
GROUP BY tab_ARPrograms.ResourceID
ORDER BY tab_ARPrograms.ResourceID
Beide Abfragen für sich funktionieren wie erwartet.
Aber wie füge ich das jetzt zusammen? In der Hauptabfrage benötige ich also zusätzlich "v_GS_ADD_REMOVE_PROGRAMS.[DisplayName0]/[Version]/[InstallDate0]" von der entsprechenden Auswahl die die SubQuery liefert.
(Es müssen in der Hauptabfrage als Ergebnis natürlich ALLE Geräte angezeigt werden, auch wenn dort keine Office Version installiert ist.)
Ich wäre sehr dankbar wenn mir da jemand helfen könnte. Komme einfach nicht weiter an der Stelle.
Falls noch zusätzliche Infos über Aufbau, Struktur oder so benötigt werden einfach Fragen, dann ergänze ich das gerne noch.
Vielen Dank schon mal
