Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Gestión de Datos] [Aporte] Final 10/12/2013
Autor Mensaje
Martin. Sin conexión
Presidente del CEIT
Enjoy it !
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.380
Agradecimientos dados: 88
Agradecimientos: 296 en 137 posts
Registro en: Oct 2011
Mensaje: #5
RE: [Gestión de Datos] [Aporte] Final 10/12/2013
(13-12-2015 22:22)DarkCrazy escribió:  Me dan una mano con esta?

1a) Si existe un select dentro de una cláusula HAVING, este debe devolver 1 fila y 1 columna

Dado el caso de que se pueda usar ANY/ALL/EXISTS/NOT EXISTS en el HAVING, ya sería falsa, pero no sé si se pude y no logro que se me ocurra un ejemplo para probar. Probé uno con ANY y no me compiló.
Si alguno tiene un link o archivo donde diga bien y completo que se puede hacer dentro de cada statement (where, having...) se agradece mucho!

Otra cosa, esto no está mal por dos motivos?
HAVING T1.t1_id IN (select T3.t3_id from T3 order by T3.t3_col2)
Primero me parece que tendría que ir en el WHERE, segundo, se puede usar el IN así? El IN no se usa así? campo1 IN (valor1,valor2,valor3) ? O funciona con un select también? En caso de que sí, compara contra cada registro devuelto por el select no? Tendría que devolver un solo campo por registro... no?
Yo creo que no es con IN sino con ANY: T1.t1 = ANY (select ..)

Saludos!

PD: En las subconsultas sí se pueden poner order by, al menos en SQL Server 2008, claro que siempre que hacia esto, mi select tenía un TOP 1 y devolvía además una sola columna. En la del ejemplo particularmente no se usa TOP así que puede ser que ahí rompa también por eso.


El IN se puede usar de esa manera, y también de la manera que vos detallas.
La de V o F es verdadero, ya que te deja usarlo el having de esa manera (aunque es poco feliz).
Ejecuté esta query y me devolvió resultados:

select cuil, sum(importe) from valores
group by cuil
having cuil in (99999999)

99999999 44071.18



La respuesta es SI, el IN con el select se fija si el campo seleccionado se encuentra en el select que se le detalla.
Tampoco te deja agregar el order by en subconsultas, ya que te arroja el siguiente error "La cláusula ORDER BY no es válida en vistas, funciones insertadas, tablas derivadas, subconsultas ni expresiones de tabla común, salvo que se especifique también TOP, OFFSET o FOR XML." (Esto es en SQL 2012)

[Imagen: jQJfyBGh9SOmZ.png]
14-12-2015 09:45
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 


Mensajes en este tema
RE: [Gestión de Datos] [Aporte] Final 10/12/2013 - Martin. - 14-12-2015 09:45



Usuario(s) navegando en este tema: 1 invitado(s)