Asi :)
Código SQL:
Ver originalDROP TABLE #temp
CREATE TABLE #temp
(
id INT,
nombre VARCHAR(20),
desc1 VARCHAR(20),
desc2 VARCHAR(20)
)
INSERT INTO #temp VALUES (1,'PRODUCTO','CAMISETAS','OTRO Valor')
INSERT INTO #temp VALUES (2,'PRODUCTO','CAMISETAS',NULL)
INSERT INTO #temp VALUES (3,'PRODUCTO',NULL,NULL)
INSERT INTO #temp VALUES (4,'PRODUCTO 2','PANTALON','OTRO Valor')
INSERT INTO #temp VALUES (5,'PRODUCTO 2','PANTALON',NULL)
DROP TABLE #temp2
SELECT nombre,total,desc1,desc2 INTO #temp2 FROM(
SELECT cuantos+cuantos2+cuantos3 AS total,nombre,desc1,desc2 FROM (
SELECT CASE WHEN isnull(nombre,'')='' THEN SUM(0) ELSE SUM(1) END AS cuantos,
CASE WHEN isnull(desc1,'')='' THEN SUM(0) ELSE SUM(1) END AS cuantos2,
CASE WHEN isnull(desc2,'')='' THEN SUM(0) ELSE SUM(1) END AS cuantos3,
nombre,desc1,desc2 FROM #temp
GROUP BY nombre,desc1,desc2)t1
)t2
SELECT * FROM #temp2 WHERE CONVERT(VARCHAR(20),total) + '|' + nombre IN (
SELECT CONVERT(VARCHAR(20),MAX(total)) + '|' + nombre FROM #temp2 GROUP BY nombre
)