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

Select complejo

Estas en el tema de Select complejo en el foro de Mysql en Foros del Web. Hola a todos Mi duda es como hacer un select que cumpla las siguientes condiciones ya que me tiene loco: Teniendo la tabla alumnosmodulos con ...
  #1 (permalink)  
Antiguo 30/10/2006, 07:30
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 6 meses
Puntos: 2
Select complejo

Hola a todos

Mi duda es como hacer un select que cumpla las siguientes condiciones ya que me tiene loco:

Teniendo la tabla alumnosmodulos con los campos NIF,EMPRESA,CURSO quiero saber:

Aquellos alumnos cuyo nif este inscrito a cursos en más de una empresa DISTINTA, o sea que casen

12345678b | Word | empresa1
12345678b | Excel | empresa2

esoty loco intente con :

Código PHP:
SELECT nif,empresa FROM alumnosmodulos GRUOP BY nif HAVING count(empresa) > 
Pero me coge aquellos que estan inscritos en la misma empresa 2 veces.

Por favor una ayudita
Gracias por adelantado
Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #2 (permalink)  
Antiguo 30/10/2006, 07:48
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
La clausula DISTINCT incluida ene l select, selecciona solo 1 de varios registrosa repetidos, investiga su uso y obtendras la respuesta
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #3 (permalink)  
Antiguo 30/10/2006, 08:22
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Hola, yo pienso que con :
Código:
SELECT DISTINCT nif,empresa 
FROM alumnosmodulos
te sale la respuesta. La opción HAVING COUNT es para ver cuantos datos hay repetitivos, por eso te sacaba el resultado anterior....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #4 (permalink)  
Antiguo 30/10/2006, 08:29
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 6 meses
Puntos: 2
Seguimos igula porque no consigo nada hice un (interminable) script PHP y me dice que son 188 y las consultas todas me dan más no se estoy como gilipollas, necesito poner el DISTINCT por donde el count(empresa) y sería perfecto pero como??? jajaj

Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #5 (permalink)  
Antiguo 02/11/2006, 11:31
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 6 meses
Puntos: 2
Alguien alguna ayudita es que estoy realmente atascado

Gracias un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #6 (permalink)  
Antiguo 02/11/2006, 12:56
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Por lo que veo, tu quieres que te salgan solo aquellos que estan en más de 1 empresa. Se puede hacer con una sub-consulta, pero la cuestión es cual es la versión que usas???
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #7 (permalink)  
Antiguo 06/11/2006, 07:39
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 6 meses
Puntos: 2
me valdría la subonsulta ya que uso mysql 4.1

intenté alguna cosa con subsonsultas pero no dio buen resultado

Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #8 (permalink)  
Antiguo 06/11/2006, 08:03
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Prueba de esta forma?
Código:
select a.nif,a.empresa 
from alumnosmodulo a 
where (select count(*) from alumnosmodulo where nif=a.nif)>1 
order by a.nif,a.empresa
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #9 (permalink)  
Antiguo 07/11/2006, 09:15
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 6 meses
Puntos: 2
Gracias PequeñoMauro, al final funciono con:

Código PHP:
SELECT Nif_Alumno,empresa FROM alumnosmodulos GRUOP BY Nif_Alumno HAVING count(DISTINCT empresa) > 
Lo que no sabía que podía usar DISTINCT dentro del count(), con eso se soluciono todo por pura lógica

Muchas gracias de verdad, espero que le valga a alguien además

Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
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 18:48.