This is possible if you combine all criteria; but you should keep them up to date then:
For clients:
Select Top 1000000 tblAssets.AssetID,
tblAssets.AssetUnique,
tblAssets.Domain,
tsysOS.OSname,
tblAssets.Description,
tblAssets.SP As [Current SP],
tblAssets.Lastseen,
tsysOS.Image As icon
From tblAssets
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tsysOS On tblAssets.OScode = tsysOS.OScode
Where ((tsysOS.OSname = 'Win Vista' And tblAssets.SP <> 2) Or
(tsysOS.OSname = 'Win 7' And tblAssets.SP <> 1) Or (tsysOS.OSname = 'Win 8'
And tblAssets.SP <> 0) Or (tsysOS.OSname = 'Win XP' And tblAssets.SP <> 3
And tsysOS.OScode = '5.1.2600') Or (tsysOS.OSname = 'Win XP' And
tblAssets.SP <> 2 And tsysOS.OScode = '5.2.3790')) And
tblAssetCustom.State = 1
Order By tblAssets.AssetName
For server versions:
Select Top 1000000 tblAssets.AssetID,
tblAssets.AssetUnique,
tblAssets.Domain,
tsysOS.OSname,
tblAssets.Description,
tblAssets.SP As [Current SP],
tblAssets.Lastseen,
tsysOS.Image As icon
From tblAssets
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tsysOS On tblAssets.OScode = tsysOS.OScode
Inner Join tblOperatingsystem
On tblAssets.AssetID = tblOperatingsystem.AssetID
Where (((tsysOS.OSname = 'Win 2000' Or tsysOS.OSname = 'Win 2000 S') And
tblAssets.SP <> 4) Or (tsysOS.OSname Like 'Win 2003%' And
tblAssets.SP <> 2) Or (tsysOS.OSname = 'Win 2008' And tblAssets.SP <> 2)
Or (tsysOS.OSname = 'win 2008 r2' And tblAssets.SP <> 1 And
tblOperatingsystem.Caption Not Like '%Hyper-V%') Or (tsysOS.OSname =
'Win 2012' And tblAssets.SP <> 0)) And tblAssetCustom.State = 1
Order By tblAssets.AssetName