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
[Pedido] Final Gestion de datos 30/7/13
Autor Mensaje
Maxter Sin conexión
Presidente del CEIT
Free
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.103
Agradecimientos dados: 129
Agradecimientos: 82 en 31 posts
Registro en: Dec 2009
Mensaje: #16
RE: [Pedido] Final Gestion de datos 30/7/13
Otra versión, con NOT IN fue la que hice en el final, y también anda:



SELECT TOP 1 C1.EQUIPO_CAMPEON, C1.ANIO
FROM CAMPEONATO C1
WHERE C1.EQUIPO_CAMPEON NOT IN
(SELECT C2.EQUIPO_CAMPEON
FROM CAMPEONATO C2 WHERE C1.EQUIPO_CAMPEON = C2.EQUIPO_CAMPEON
AND C1.ANIO != C2.ANIO)
ORDER BY C1.ANIO DESC



[Imagen: firma_valkiria3.jpg]
04-08-2013 20:59
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gonnza Sin conexión
User Verde

*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17.356
Agradecimientos dados: 900
Agradecimientos: 887 en 356 posts
Registro en: Mar 2010
BlogSpot Google+ YouTube
Mensaje: #17
RE: [Pedido] Final Gestion de datos 30/7/13
(04-08-2013 20:48)Martinrg escribió:  
(04-08-2013 16:23)juani0033 escribió:  
(04-08-2013 12:54)gonnza escribió:  los V o F, el primero es VErdadero y el segundo Falso no?


el segundo que es Falso estoy seguro, pero el primero no tanto =P


el 3.a) seria algo como


select equipo_campeon
from campeonato
group by equipo_campeon
having count(equipo_campeon) = 1
order by max(anio) desc[/sql]

y el 3.b) no estoy muy seguro que pide, porque en sql son conjuntos, no hay un "orden"..

pero asumo que se pueden referir a esto tal vez?


[code=sql]
CREATE TRIGGER dbo.inserta_en_orden ON campeonato
instead of INSERT
AS
BEGIN
insert into Campeonato select Equipo_Campeon, anio from inserted order by Anio asc
END




insertar los elementos en orden

sino no tiene sentido la pregunta

Hola, a la query del punto 3.a, le estaría faltando el top 1, porque te pide el último equipo que salió campeón por única vez.

Saludos.

Pregunta, si le agregamos el TOP 1, sigue siendo necesario la funcion MAX(anio) en el ORDER BY. No se podria poner directamente ORDER BY anio DESC ?

Saludos,



si usas group by no tenes "anio", no esta en la clausula del group. Asique ordenas por nombre del equipo, o por alguna funcion aplicada al resto de los campos

(04-08-2013 20:32)alejo89 escribió:  El 3.a aclara que no se puede usar funciones. Para mi está mal usar el count para resolverlo, ya que es una funcion.

Yo lo resolvería así,


SELECT TOP 1 C1.EQUIPO_CAMPEON, C1.ANIO
FROM CAMPEONATO C1
WHERE NOT EXIST (SELECT 1 FROM CAMPEONATO C2 WHERE C1.EQUIPO_CAMPEON = C2.EQUIPO_CAMPEON AND C1.ANIO <> C2.ANIO)
ORDER BY 2 DESC




yo por funciones interprete a funciones propias (create function) porque sino te mandas una recursiva y ya, y creo que quieren que lo resuelvas en ANSI SQL

pero bueno es cuestionable, supongo que habria que preguntarlo al profe

[Imagen: v34BEFt.gif]
(Este mensaje fue modificado por última vez en: 05-08-2013 11:25 por gonnza.)
05-08-2013 11:24
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
juani0033 Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 123
Agradecimientos dados: 22
Agradecimientos: 43 en 12 posts
Registro en: Jul 2008
Mensaje: #18
RE: [Pedido] Final Gestion de datos 30/7/13
(05-08-2013 11:24)gonnza escribió:  
(04-08-2013 20:48)Martinrg escribió:  
(04-08-2013 16:23)juani0033 escribió:  
(04-08-2013 12:54)gonnza escribió:  los V o F, el primero es VErdadero y el segundo Falso no?


el segundo que es Falso estoy seguro, pero el primero no tanto =P


el 3.a) seria algo como


select equipo_campeon
from campeonato
group by equipo_campeon
having count(equipo_campeon) = 1
order by max(anio) desc[/sql]

y el 3.b) no estoy muy seguro que pide, porque en sql son conjuntos, no hay un "orden"..

pero asumo que se pueden referir a esto tal vez?


[code=sql]
CREATE TRIGGER dbo.inserta_en_orden ON campeonato
instead of INSERT
AS
BEGIN
insert into Campeonato select Equipo_Campeon, anio from inserted order by Anio asc
END




insertar los elementos en orden

sino no tiene sentido la pregunta

Hola, a la query del punto 3.a, le estaría faltando el top 1, porque te pide el último equipo que salió campeón por única vez.

Saludos.

Pregunta, si le agregamos el TOP 1, sigue siendo necesario la funcion MAX(anio) en el ORDER BY. No se podria poner directamente ORDER BY anio DESC ?

Saludos,



si usas group by no tenes "anio", no esta en la clausula del group. Asique ordenas por nombre del equipo, o por alguna funcion aplicada al resto de los campos

(04-08-2013 20:32)alejo89 escribió:  El 3.a aclara que no se puede usar funciones. Para mi está mal usar el count para resolverlo, ya que es una funcion.

Yo lo resolvería así,


SELECT TOP 1 C1.EQUIPO_CAMPEON, C1.ANIO
FROM CAMPEONATO C1
WHERE NOT EXIST (SELECT 1 FROM CAMPEONATO C2 WHERE C1.EQUIPO_CAMPEON = C2.EQUIPO_CAMPEON AND C1.ANIO <> C2.ANIO)
ORDER BY 2 DESC




yo por funciones interprete a funciones propias (create function) porque sino te mandas una recursiva y ya, y creo que quieren que lo resuelvas en ANSI SQL

pero bueno es cuestionable, supongo que habria que preguntarlo al profe

claro, yo entendí lo mismo, porque no dice funciones de grupo, igualmente se le pregunta al profesor y listo.
05-08-2013 18:22
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
coolerking Sin conexión
Secretario de la SAE
estado' unido'
******

Análisis de Sistemas
Facultad Regional Buenos Aires

Mensajes: 480
Agradecimientos dados: 117
Agradecimientos: 95 en 50 posts
Registro en: Jan 2012
Mensaje: #19
RE: [Pedido] Final Gestion de datos 30/7/13
Es una locura si pido si lo pueden volver a subir no?

[Imagen: donacion1.jpg]
13-01-2015 13:19
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
eltipito Sin conexión
Profesor del Modulo A
^^
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 386
Agradecimientos dados: 73
Agradecimientos: 45 en 19 posts
Registro en: May 2008
Last.fm
Mensaje: #20
RE: [Pedido] Final Gestion de datos 30/7/13
(13-01-2015 13:19)coolerking escribió:  Es una locura si pido si lo pueden volver a subir no?

idem
09-02-2015 12:42
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Aoshido Sin conexión
Campeon del cubo Rubik
Tamashi no Kijitsu
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 135
Agradecimientos dados: 30
Agradecimientos: 90 en 24 posts
Registro en: Jul 2010
Mensaje: #21
RE: [Pedido] Final Gestion de datos 30/7/13
Hola, aca dejo el final junto con mi resolucion del ejercicio de campeonato.
Spoiler: Mostrar
   
Como aborrezco esas restricciones berretas que ponen dios...

3a)


select
c1.equipo_campeon
from
campeonato c1
left join campeonato c2 on c1.equipo_campeon = c2.equipo_campeon and c1.anio != c2.anio
where
c2.equipo is null
order by
c1.anio desc
limit 1


(Este mensaje fue modificado por última vez en: 20-02-2015 04:46 por Aoshido.)
20-02-2015 04:43
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Aoshido recibio 3 Gracias por este post
coolerking (24-02-2015), gonzalo.gobea (13-12-2015), CarooLina (08-02-2018)
coolerking Sin conexión
Secretario de la SAE
estado' unido'
******

Análisis de Sistemas
Facultad Regional Buenos Aires

Mensajes: 480
Agradecimientos dados: 117
Agradecimientos: 95 en 50 posts
Registro en: Jan 2012
Mensaje: #22
RE: [Pedido] Final Gestion de datos 30/7/13
Yo con el trigger hice esto


CREATE TRIGGER dbo.inserta_ordenado on campeonato
INSTEAD OF INSERT
AS
BEGIN
IF (SELECT anio FROM inserted) = (SELECT TOP 1 anio + 1 FROM CAMPEONATO ORDER BY anio DESC)
INSERT INTO CAMPEONATO (equipo_campeon,anio) (SELECT * FROM inserted)
ELSE
RAISERROR('error LOS ANIOS DEBEN SER CONSECUTIVOS',16,1)
END



[Imagen: donacion1.jpg]
(Este mensaje fue modificado por última vez en: 25-02-2015 00:13 por coolerking.)
25-02-2015 00:12
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] coolerking recibio 2 Gracias por este post
gonzalo.gobea (13-12-2015), CarooLina (08-02-2018)
DarkCrazy Sin conexión
Profesor del Modulo A
Howdy ho!
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 394
Agradecimientos dados: 461
Agradecimientos: 255 en 78 posts
Registro en: Mar 2011
Mensaje: #23
RE: [Pedido] Final Gestion de datos 30/7/13
Buenas noches gente! Les planteo una duda que no es de concepto sino sobre el criterio de evaluación. La planteo acá porque me surgió puntualmente con el punto 1b) UNIQUE admite varios NULL según SQL http://www.w3schools.com/ que si mal no tengo entendido es un estandar oficial, aunque no sé si es ANSI...
Ahora si nos referimos a SQL-Server 2008, no lo probé pero creo que admite un solo NULL.

Entonces qué respondo? Yo calculo que es tanto verdadera como falsa pero aclarando que motor o estandar se toma como base.

La pregunta mia sería en realidad, ellos qué pretendian que respondamos en este punto? Hay que justificar los VoF? porque en este caso particular me parece que requiere una aclaración al menos.

Desde ya muchas gracias!
12-12-2015 21:10
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
leandrong Sin conexión
Secretario de la SAE
...
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 632
Agradecimientos dados: 180
Agradecimientos: 616 en 80 posts
Registro en: Sep 2008
Mensaje: #24
RE: [Pedido] Final Gestion de datos 30/7/13
(12-12-2015 21:10)DarkCrazy escribió:  Buenas noches gente! Les planteo una duda que no es de concepto sino sobre el criterio de evaluación. La planteo acá porque me surgió puntualmente con el punto 1b) UNIQUE admite varios NULL según SQL http://www.w3schools.com/ que si mal no tengo entendido es un estandar oficial, aunque no sé si es ANSI...
Ahora si nos referimos a SQL-Server 2008, no lo probé pero creo que admite un solo NULL.

Entonces qué respondo? Yo calculo que es tanto verdadera como falsa pero aclarando que motor o estandar se toma como base.

La pregunta mia sería en realidad, ellos qué pretendian que respondamos en este punto? Hay que justificar los VoF? porque en este caso particular me parece que requiere una aclaración al menos.

Desde ya muchas gracias!

Lo probé en el SQL-Server 2014 y solo te deja insertar un NULL.
En Oracle te deja poner más de uno.

Sería falsa, porque depende del motor de base de datos.

Los VoF de Gestión son cualquier cosa. Hay algunos que no están en los apuntes.
(Este mensaje fue modificado por última vez en: 19-12-2015 18:06 por leandrong.)
19-12-2015 17:59
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
leandrong Sin conexión
Secretario de la SAE
...
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 632
Agradecimientos dados: 180
Agradecimientos: 616 en 80 posts
Registro en: Sep 2008
Mensaje: #25
RE: [Pedido] Final Gestion de datos 30/7/13
(25-02-2015 00:12)coolerking escribió:  Yo con el trigger hice esto


CREATE TRIGGER dbo.inserta_ordenado on campeonato
INSTEAD OF INSERT
AS
BEGIN
IF (SELECT anio FROM inserted) = (SELECT TOP 1 anio + 1 FROM CAMPEONATO ORDER BY anio DESC)
INSERT INTO CAMPEONATO (equipo_campeon,anio) (SELECT * FROM inserted)
ELSE
RAISERROR('error LOS ANIOS DEBEN SER CONSECUTIVOS',16,1)
END



Y si se insertan varios registros a la vez con el "select anio from inserted" cuál compara?

Te tira este error:

La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, <, <=, >, >= o cuando se utiliza como expresión.
(Este mensaje fue modificado por última vez en: 21-12-2015 23:36 por leandrong.)
21-12-2015 23:24
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
reLlene Sin conexión
Profesor del Modulo A
...
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 307
Agradecimientos dados: 371
Agradecimientos: 63 en 35 posts
Registro en: Aug 2012
Mensaje: #26
RE: [Pedido] Final Gestion de datos 30/7/13
(21-12-2015 23:24)leandrong escribió:  
(25-02-2015 00:12)coolerking escribió:  Yo con el trigger hice esto


CREATE TRIGGER dbo.inserta_ordenado on campeonato
INSTEAD OF INSERT
AS
BEGIN
IF (SELECT anio FROM inserted) = (SELECT TOP 1 anio + 1 FROM CAMPEONATO ORDER BY anio DESC)
INSERT INTO CAMPEONATO (equipo_campeon,anio) (SELECT * FROM inserted)
ELSE
RAISERROR('error LOS ANIOS DEBEN SER CONSECUTIVOS',16,1)
END



Y si se insertan varios registros a la vez con el "select anio from inserted" cuál compara?

Te tira este error:

La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, <, <=, >, >= o cuando se utiliza como expresión.

tenes 1 campeón por año leandrong, no creo q sean tan putos!!
21-12-2015 23:58
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




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