Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

[SOLUCIONADO] Problema sql

Estas en el tema de Problema sql en el foro de Bases de Datos General en Foros del Web. hola a todos estoy realizando una consulta que me han pedido en el trabajo con sql. lo estoy haciendo con mySql Son dos tablas las ...
  #1 (permalink)  
Antiguo 06/02/2015, 11:40
 
Fecha de Ingreso: julio-2008
Mensajes: 155
Antigüedad: 16 años, 3 meses
Puntos: 1
Problema sql

hola a todos estoy realizando una consulta que me han pedido en el trabajo con sql.
lo estoy haciendo con mySql
Son dos tablas las que están involucradas.
Empresa y Tasca.
Estos son los campos de cada una

Empresa ->id,nom,estat,dataAlta
Tasca-> id,nom,data,descripcio,estat,solucio,id_empresa

Hay una relación de Empresa.id -> Tasca.id_empresa

Tengo la siguiente consulta:

Código SQL:
Ver original
  1. SELECT  e.nom AS empresa, t.nom AS tasca ,t.DATA AS altaTarea FROM (SELECT * FROM tasca ORDER BY DATA ASC) t, empresa e
  2.  WHERE e.id = t.id_empresa
  3.  GROUP BY t.nom,t.DATA,e.nom

Y esto es lo que me hace:

empresa -> tasca -> altaTarea
uni -> t1 -> 2015-02-06
zr -> t2 -> 2015-02-06
iluro -> t3 -> 2015-02-07
iluro -> t4 -> 2015-02-06

Cita:
PD: esto -> es para separar y que quede algo mas claro
hay 4 empresas solo me enseña 3 pues son estas las que tienen tareas esto OK.
La empresa quiere que solo me muestre una de las tareas de cada empresa.
Es decir por ejemplo iluro solo tiene que aparecer una vez y no dos, tiene que aparecer la que tiene la fecha mas antigua, ya que es la mas crítica.

Cualquier respuesta será bienvenida
No se me ocurre nada
Gracias un saludo.

Última edición por gnzsoloyo; 06/02/2015 a las 12:04
  #2 (permalink)  
Antiguo 06/02/2015, 11:45
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Problema sql

Busca solo las que sean de nombres distintos.

Código SQL:
Ver original
  1. SELECT DISTINTC empresa FROM tabla WHERE...

Al estar ordenados por fecha, te mostrará el ultimo.

Última edición por gnzsoloyo; 06/02/2015 a las 12:03
  #3 (permalink)  
Antiguo 06/02/2015, 11:52
 
Fecha de Ingreso: julio-2008
Mensajes: 155
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Problema sql

Hola no puedo usar el distinct, ya que hay 3 campos a mostrar y son todos diferentes, el único que puede parecerse es el de la dataAlta y empresa.
  #4 (permalink)  
Antiguo 06/02/2015, 12:00
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Problema sql

Pues la otra opcion es usar GROUP BY pero veo que ahi tambien lo usas para 3 campos, por que?
  #5 (permalink)  
Antiguo 06/02/2015, 12:09
 
Fecha de Ingreso: julio-2008
Mensajes: 155
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Problema sql

Pues no se porque he puesto el group by, ya que el resultado es el mismo.
Sin todos son diferentes y no hay ningun campo de grupo es absurdo si
  #6 (permalink)  
Antiguo 06/02/2015, 12:12
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Problema sql

Deja solo el group by empresa y deberia funcionar
  #7 (permalink)  
Antiguo 06/02/2015, 12:25
 
Fecha de Ingreso: julio-2008
Mensajes: 155
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Problema sql

Gracias ya funciona.

Pongo la consulta.

Código SQL:
Ver original
  1. SELECT DISTINCT e.nom AS empresa, t.DATA, t.nom FROM (SELECT * FROM tasca ORDER BY DATA ASC) t, empresa e
  2.  WHERE e.id = t.id_empresa
  3.  
  4.  GROUP BY e.nom
Una cosa.
¿El group by no tiene que tener todos los campos que quieres mostrar? a excepción de los de grupo (avg,max,min,count...).
O eso entendi yo cuando me lo explicaron.

Última edición por gnzsoloyo; 06/02/2015 a las 12:39 Razón: Por favor, usar los highligh.
  #8 (permalink)  
Antiguo 06/02/2015, 12:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema sql

Cita:
¿El group by no tiene que tener todos los campos que quieres mostrar? a excepción de los de grupo (avg,max,min,count...).
O eso entendi yo cuando me lo explicaron.
Si, a menos que uses MySQL...
MySQL admite agrupar sobre campos que no estén en el SELECT, pero es el único DBMS que lo permite.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 06/02/2015, 12:52
 
Fecha de Ingreso: julio-2008
Mensajes: 155
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Problema sql

Gracias por vuestras soluciones y respuestas.

Etiquetas: campos, ejemplo, mysql, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:44.