# mes.spGetAssetStateEventSummary

## Description
Summarizes state durations for a given asset within a date range, optionally filtered by event duration and type. Uses `fnGetAssetStateEvents` internally and performs grouping on state dimensions.

## Syntax
<b>mes.spGetAssetStateEventSummary @assetId, @rangeStart, @rangeEnd, @durationSecs, @showChanged, @showDowntimeOnly</b>  
<br /><br />

<b>Parameters:</b><br />
@assetId (int): ID of the asset.<br />
@rangeStart (datetime): Beginning of the analysis window.<br />
@rangeEnd (datetime): End of the analysis window.<br />
@durationSecs (int): Minimum duration (in seconds) for events to be included.<br />
@showChanged (bit): If 1, only includes events with changed states.<br />
@showDowntimeOnly (bit): If 1, filters to only include downtime states.<br /><br />

<b>Returns:</b><br />
Grouped state duration (in seconds) by:<br />
- assetName<br />
- assetPath<br />
- stateName<br />
- stateTypeName<br />
- stateCategoryName<br />
- assetStateName<br />
- assetStatePath<br />

### Code Example

```sql
EXEC mes.spGetAssetStateEventSummary
    @assetId = 1001,
    @rangeStart = '2025-07-01',
    @rangeEnd = '2025-07-30',
    @durationSecs = 60,
    @showChanged = 1,
    @showDowntimeOnly = 1;
