Agrupar subconsultas en un sola

Me  top con la necesidad de dado un select que tenía subconsulta y esta subconsultas retornaba mas que un registro, Me daba el típico error . Your subquery return more tha one rowS.
Buscando  en internet me encontre con GROUP_CONCAT .Para SQLSEVER tambien existeXML PATH .

Asi que con ello solucione el inconveniente.A continuacion mi sql completo como quedo.

select  a.idAviso ,b.Categoria,CASE  b.Categoria
WHEN 'A' THEN 'Alumno'
WHEN 'N' THEN 'Nivel'
WHEN 'D' THEN 'DIVISION'
WHEN 'C' THEN 'CURSO/GRADO'
WHEN 'E' THEN 'Ex-Alumnos'
WHEN 'B' THEN 'Debito Aut'
ELSE 'Todos'
END  as Destinatario,  ifnull( Nivel,0) as Codigo,CASE  b.Categoria
WHEN 'A' THEN (SELECT GROUP_CONCAT(CONCAT(Codigo,'/ ',NumHermano ) )from matriculados inner join destinatarioaviso dest on matriculados.CodAlumno= dest.Nivel  where CodAlumno=dest.Nivel and dest.IdAviso=b.IdAviso )
WHEN 'N' THEN (select GROUP_CONCAT(Descripcion) from mnivel inner join destinatarioaviso dest on mnivel.IdNivel=dest.Nivel where IdNivel=Nivel and dest.IdAviso=b.IdAviso )
WHEN 'D' THEN (select GROUP_CONCAT(Descripcion) from mdivision inner join destinatarioaviso dest on mdivision.IdDivision=dest.Nivel   where IdDivision=Nivel and dest.IdAviso=b.IdAviso )
WHEN 'C' THEN (select GROUP_CONCAT( concat(mcursogrado.Descripcion,'-',mseccion.Descripcion)) from mcurso inner join mcursogrado on mcurso.IdCursoGrado =mcursogrado.IdCursoGrado
inner join mseccion on mseccion.IdSeccion = mcurso.IdSeccion  inner join destinatarioaviso dest on mcurso.IdCurso= dest.Nivel  where mcurso.IdCurso=Nivel and dest.IdAviso=b.IdAviso )
WHEN 'E' THEN 'Ex-Alumnos'
WHEN 'B' THEN 'Debito Aut'
ELSE 'Todos' END as Dirigido,a.FechaIngreso as Fecha, a.TipoAviso , a.Titulo, a.Descripcion from avisosnuevo a inner join destinatarioaviso b on a.idAviso = b.IdAviso where year(a.FechaSistema)= year(now()) group by a.idAviso   order by FechaIngreso desc ,a.idAviso  desc ;
  


Fuente: http://www.joellipman.com/articles/sql/551-mysql-groupconcat-equivalent-in-t-sql-and-oracle.html


Saludos
Adalberto Montanía

Comentarios