• What are typical values for SUM(nUsed_Min) and SUM(nSize)?

    Your query is easier to read if table aliases are used:

    SELECT TOP 10

    d.nDeviceID,

    d.sDisplayName,

    sgroupname,

    sDescription,

    dPollTime,

    MIN(nUsed_Min) AS Minimaal_gebruik,

    MAX(nused_Max) AS Maximaal_gebruik,

    SUM(nSize) AS Totaal_Schijfruimte,

    (CAST(SUM(nUsed_Min) AS FLOAT(2)) / CAST(SUM(nSize) AS FLOAT(2)) * CAST(AVG(100) AS NUMERIC(10, 2))) AS Ingebruik

    FROM dbo.StatisticalDisk sd

    LEFT JOIN dbo.StatisticalDiskIdentification sdi

    on sdi.nStatisticalDiskIdentificationID = sd.nStatisticalDiskIdentificationID

    LEFT JOIN dbo.PivotStatisticalMonitorTypeToDevice pm

    on pm.nPivotStatisticalMonitorTypeToDeviceID = sdi.nPivotStatisticalMonitorTypeToDeviceID

    LEFT JOIN Device d

    on d.nDeviceID = pm.nDeviceID

    INNER JOIN pivotdevicetogroup pdg

    ON pdg.nDeviceID = Device.nDeviceID

    INNER JOIN DeviceGroup dg

    ON pdg.nDeviceGroupID = dg.nDeviceGroupID

    INNER JOIN [time]

    ON sd.dPollTime = [time].PK_Date

    WHERE sd.dPollTime = dateadd(MM, 1, '2013')

    AND dg.sGroupName IN ('CUSTOMER')

    GROUP BY d.nDeviceID,

    d.sDisplayName,

    dg.sgroupname,

    sDescription,

    dPollTime,

    nSize

    HAVING (CAST(SUM(nused_min) AS FLOAT(2)) / CAST(SUM(nsize) AS FLOAT(2)) * CAST(AVG(100) AS NUMERIC(10, 2))) >= 80

    ORDER BY dPollTime DESC

    “Write the query the simplest way. If through testing it becomes clear that the performance is inadequate, consider alternative query forms.” - Gail Shaw

    For fast, accurate and documented assistance in answering your questions, please read this article.
    Understanding and using APPLY, (I) and (II) Paul White
    Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden