elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Ayuda con sentencia sql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con sentencia sql  (Leído 16,034 veces)
50l3r


Desconectado Desconectado

Mensajes: 784


Solo se que se algo pero no me acuerdo


Ver Perfil WWW
Ayuda con sentencia sql
« en: 23 Marzo 2010, 15:58 pm »

Veran, tengo que realizar la siguiente sentencia ero no se me ocurre como:

hallar el numero maximo de partidos ganados por cada equipo añadiendo el nombre del equipo y ordenar el resultado decrecientemente por el nº de partidos ganados

el ej dice que se puede utilizar "union all"

estas son las tablas que poseo, os hago un describe:


mysql> describe equipos
    -> ;
+-------------------+-------------+------+-----+---------+----------------+
| Field             | Type        | Null | Key | Default | Extra          |
+-------------------+-------------+------+-----+---------+----------------+
| registro          | int(11)     | NO   | PRI | NULL    | auto_increment |
| nombre            | varchar(30) | NO   | MUL | NULL    |                |
| nombre_entrenador | varchar(35) | NO   |     | NULL    |                |
| nombre_cancha     | varchar(30) | NO   |     | NULL    |                |
| poblacion         | varchar(25) | NO   |     | NULL    |                |
| anio_fundacion    | int(4)      | NO   |     | NULL    |                |
| anotaciones       | blob        | YES  |     | NULL    |                |
+-------------------+-------------+------+-----+---------+----------------+


mysql> describe partidos;
+-------------------+---------+------+-----+---------+----------------+
| Field             | Type    | Null | Key | Default | Extra          |
+-------------------+---------+------+-----+---------+----------------+
| registro          | int(11) | NO   | PRI | NULL    | auto_increment |
| id_equipo         | int(11) | NO   |     | NULL    |                |
| resultado_equipo1 | int(11) | NO   |     | NULL    |                |
| id_equipo2        | int(11) | NO   |     | NULL    |                |
| resultado_equipo2 | int(11) | NO   |     | NULL    |                |
+-------------------+---------+------+-----+---------+----------------+


yo creo que es casi imposible, no se me ocurre como :S


En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Ayuda con sentencia sql
« Respuesta #1 en: 23 Marzo 2010, 17:14 pm »

No es imposible  ;)

Mira, te dare una pista para estos tipos de casos. En tu situacion deberas hacer un JOIN si usas el UNION te saldria 1 sola fila con los resultados de ambas tablas y no podras saber cuales pertenecen a una o cuales a la otra tabla  :xD

para obtener pos el maximo de partidos ganados por cada equipo seria algo como:

SELECT MAX(anotaciones) FROM equipos GROUP BY (nombre) ORDER BY nombre DESC

Siempre y cuando anotaciones sean partidos ganados, y nombre sea el nombre del equipo.

Harias algo similar en la otra tabla para obtener lo mismo  ;)  si te funciona (ya que no lo he probado) pasa la info para entonces hacer un JOIN de las dos.


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Ayuda con sentencia sql
« Respuesta #2 en: 23 Marzo 2010, 17:16 pm »

Es posible, pero es mejor usar Store Procedure!

Consulta sobre funciones como... MAX(), COUNT(), INNER JOIN, DESC, ASC.
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Ayuda con sentencia sql
« Respuesta #3 en: 24 Marzo 2010, 02:37 am »

y donde esta la relacion de esas 2 tablas..??  :o :o deberia tener un idequipo sino es imposible saber el nombre de un equipo dado un ID...

saludos.
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Ayuda con sentencia sql
« Respuesta #4 en: 24 Marzo 2010, 13:46 pm »

Citar
y donde esta la relacion de esas 2 tablas..??

Visualmente, pareciera que el campo registro es su indice de relacion entre las dos tablas  ;)  pero si por lo menos el detallase si la consulta SQL le funcionase, se pudiera continuar ayudando y armarle un JOIN de las dos tablas...  :P
En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Ayuda con sentencia sql
« Respuesta #5 en: 24 Marzo 2010, 14:24 pm »

yo creo que es casi imposible, no se me ocurre como :S

Mi punto de vista...!

Presumo que Registro en la tabla equipo es el indice de dicha tabla. Pero asi mismo id_equipo1 e id_equipo2 debe estar relacionado con ese Registro que tienes en la tabla equipo. Ahora bien.

Si anotaciones es el número de partidos ganados, pues con el query de Tifa te resuelves. Si no es asi, pues debes hacer par de select. Por ejemplo:

Lo primero que debemos hacer es relacionar la tabla Equipos con Partidos. Yo particularmente lo hago de la siguiente manera. Nota: Aunque uso SQL Server, debe ser igual.

Código
  1.  
  2. CREATE VIEW VISTA
  3. AS
  4. SELECT  partidos.id_equipo, Equipos.nombre AS PRIMER_EQUIPO, partidos.id_equipo2, Equipos_1.nombre AS SEGUNDO_EQUIPO,
  5. partidos.resultado_equipo1, partidos.resultado_equipo2
  6. FROM Equipos INNER JOIN
  7. partidos ON Equipos.registro = partidos.id_equipo INNER JOIN
  8. Equipos Equipos_1 ON partidos.id_equipo2 = Equipos_1.registro
  9.  
  10.  

Imagen:


Luego lo que debo es hacer un select a dicha vista donde visualizo a los equipos y las veces ganadas...

Código
  1.  
  2. SELECT     (CASE WHEN RESULTADO_EQUIPO1 > RESULTADO_EQUIPO2 THEN PRIMER_EQUIPO ELSE SEGUNDO_EQUIPO END) AS GANADOR,
  3.                      COUNT((CASE WHEN RESULTADO_EQUIPO1 > RESULTADO_EQUIPO2 THEN PRIMER_EQUIPO ELSE SEGUNDO_EQUIPO END))
  4.                      AS Total_Ganados
  5. FROM         VISTA1
  6. GROUP BY (CASE WHEN RESULTADO_EQUIPO1 > RESULTADO_EQUIPO2 THEN PRIMER_EQUIPO ELSE SEGUNDO_EQUIPO END)
  7.  
  8.  



Resuelto...!  ;-)


PD.: Allí no tomo en cuenta un EMPATE... Ojo con eso...! Pero ya tienes una respuesta a tú duda... Saludos a mi bella Tifa...!
« Última modificación: 24 Marzo 2010, 15:15 pm por ssccaann43 » En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
50l3r


Desconectado Desconectado

Mensajes: 784


Solo se que se algo pero no me acuerdo


Ver Perfil WWW
Re: Ayuda con sentencia sql
« Respuesta #6 en: 24 Marzo 2010, 14:34 pm »

tengo un indice en la tabla equipos del campo nombre, para por ejemplo sacar el nombre en la tabla partidios hago un inner join:
Código
  1. SELECT e1.nombre equipo1,e2.nombre equipo2,avg(resultado_equipo1 + resultado_equipo2) AS media FROM partidos  p INNER JOIN equipos e1 ON p.id_equipo=e1.registro INNER JOIN equipos e2 ON p.id_equipo2=e2.registro GROUP BY id_equipo;
  2.  

ahi saco por ejemplo la media de puntos de cada partido jugado, y uso inner join para coger el nombre del equipo
En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Ayuda con sentencia sql
« Respuesta #7 en: 24 Marzo 2010, 15:16 pm »

Rejueeerto..!
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Ayuda con sentencia sql
« Respuesta #8 en: 24 Marzo 2010, 15:20 pm »

Mientras mas leo... menos entiendo lo que se esta solicitando  ::)  que alguien me explique.
En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Ayuda con sentencia sql
« Respuesta #9 en: 24 Marzo 2010, 15:22 pm »

Yo presumo que tiene un chapuzon de dudas y confusiones, creo que con mi post resuelve su duda...!
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con sentencia bastante dificil
Bases de Datos
50l3r 6 4,401 Último mensaje 30 Diciembre 2010, 14:20 pm
por JuanRaGD
Sentencia SQL
Bases de Datos
TheGhost(Z) 2 2,943 Último mensaje 6 Marzo 2011, 17:35 pm
por raul338
ayuda sentencia SQL
Bases de Datos
soru13 4 3,286 Último mensaje 16 Junio 2012, 19:07 pm
por soru13
Ayuda con la sentencia WHERE en VB.net
Programación General
airtraffic 2 1,923 Último mensaje 19 Febrero 2013, 21:52 pm
por airtraffic
Ayuda! Error con sentencia do while
Programación C/C++
Chandalero 2 1,526 Último mensaje 9 Mayo 2018, 19:49 pm
por Chandalero
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines