Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: bgnumis en 20 Junio 2015, 08:53 am



Título: INNER
Publicado por: bgnumis en 20 Junio 2015, 08:53 am
Hola tengo dos tablas sobre las que deseo "cruzar" datos y hacer una consulta.

eclientes tiene las tabalas ofi, NACIONALIDAD
ocentro ofi, del

El "campo" en común es ofi.

Lo que trato es de contar todos los registros para todos los campos donde "del" sea diferente de "blancos" me agrupe los valores contando de la tabla "eclientes" todos aquellos valores donde "ofi" sea igual y además que se cumpla que  NACIONALIDAD "SI".

Estoy haciendo esto pero aunque no me da error no me saca nada y sí debiera por lo que estoy haciendo algo mal pero no sé qué.

Código
  1.  
  2. $busqueda2=mysql_query("SELECT * FROM eclientes E inner join  ocentro O
  3. ON E.ofi = O.ofi
  4.  
  5. COUNT((`O.del`!= ''`)) WHERE `E.NACIONALIDAD`= `SI` group by `O.del` ") ;
  6.  
  7. echo "<table width=500  border=1 align=left>"; //EMPIEZA A CREAR LA TABLA CON LOS ENCABEZADOS DE TABLA
  8. echo "<tr>";//<tr> CREA UNA NUEVA FILA
  9. echo "<td width=200>Delegado </td>";//<td> CREA NUEVA COLUMNA
  10. echo "<td width=300>Afiliados</td>";
  11.  
  12. echo "</tr>";
  13.  
  14.  
  15. while($consulta2 = mysql_fetch_array($busqueda2)){
  16.  
  17. echo "<tr>";
  18. echo "<td>".$consulta2['0']."</td>";
  19. echo "<td>".$consulta2['1']."</td>";
  20. echo "</tr>";
  21. }
  22.  
  23. echo "</table>";//FINALIZA LA TABLA
  24.  
  25.  
  26.  
  27.  
  28.  


¿Por qué no me saca nada?


Título: Re: INNER
Publicado por: bgnumis en 20 Junio 2015, 09:20 am
Así tampoco:

Código
  1.  
  2. busqueda2=mysql_query("SELECT * FROM eclientes E inner join  ocentro O
  3. ON E.ofi = O.ofi
  4.  
  5. COUNT((`O.del`!= ''`)) WHERE  E.ofi =O.ofi AND `E.NACIONALIDAD`= `SI` group by `O.del` ") ;
  6.  
  7.  

No lo consigo....


Título: Re: INNER
Publicado por: fran800m en 20 Junio 2015, 14:52 pm
Si te lo digo flaco favor te voy a hacer, pero te voy a hacer pensar.

Si ya unes las tablas por E.ofi = O.ofi no tienes que filtrar por ese criterio, ya lo hiciste al unir por ese punto.

`E.NACIONALIDAD`= `SI` es un criterio. Y correctamente lo pones en el where.

`O.del`!= '' es otro criterio de filtrado, ¿dónde debería estar entonces.

Respecto al count mírate algún tutorial básico, ¿lo has puesto en el lugar correcto de la sentencia SQL ?

El group no sé si te hace falta porque no he entendido muy bien lo que quieres (ando espeso, falta de sueño...).

Un saludo,


Título: Re: INNER
Publicado por: bgnumis en 21 Junio 2015, 17:42 pm
Ya lo he conseguido

SOY UN CASCOPORRO.

Gracias mil