SELECT T.CardCode, T.TypeA * 32 + T.TypeB * 16
+ T.TypeC * 8 + T.TypeD * 4 + T.TypeE * 2 + T.TypeF * 1 GROUP_NUM
FROM
(
SELECT T0.CardCode,
MAX(CASE WHEN T2.QryGroup1 = 'N' THEN 0 ELSE 1 END) TypeA,
MAX(CASE WHEN T2.QryGroup2 = 'N' THEN 0 ELSE 1 END) TypeB,
MAX(CASE WHEN T2.QryGroup3 = 'N' THEN 0 ELSE 1 END) TypeC,
MAX(CASE WHEN T2.QryGroup4 = 'N' THEN 0 ELSE 1 END) TypeD,
MAX(CASE WHEN T2.QryGroup5 = 'N' THEN 0 ELSE 1 END) TypeE,
MAX(CASE WHEN T2.QryGroup6 = 'N' THEN 0 ELSE 1 END) TypeF
FROM OINV T0 INNER JOIN INV1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode
WHERE T0.DocDate BETWEEN GETDATE()- 180 AND GETDATE()
GROUP BY T0.CardCode) T