Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: asdexiva en 16 Septiembre 2019, 03:24 am



Título: multiples registros solo necesito uno
Publicado por: asdexiva en 16 Septiembre 2019, 03:24 am
buenas podrian darme una idea para que solo muestre el ultimo registro en vez de todos?, gracias

Código
  1. SELECT central.sucursal AS numero, t_sucursales.nombre_suc, central.fecha, central.inventario FROM central INNER JOIN t_sucursales ON central.sucursal = t_sucursales.numerosucursal WHERE
  2. (
  3. MONTH(central.fecha)  LIKE  '%". $mes ."%'
  4. AND YEAR(central.fecha)  LIKE  '%". $año ."%'
  5. AND t_sucursales.numerosucursal  LIKE  '%". $numerosucursal ."%'
  6. AND t_sucursales.nombre_suc LIKE  '%". $nombresursal ."%'
  7.    )


Mod: Temas sobre Bases de Datos van al subforo de Bases de Datos.


Título: Re: multiples registros solo necesito uno
Publicado por: engel lex en 16 Septiembre 2019, 03:28 am
esto al final de tu query debería hacer el trabajo

Código
  1. ORDER BY central.fecha DESC LIMIT 1



Título: Re: multiples registros solo necesito uno
Publicado por: asdexiva en 16 Septiembre 2019, 03:51 am
eso era gracias ,disculpa y si quisiera que al dejar vacio mostrara todos pero sin repetir sucursales


Título: Re: multiples registros solo necesito uno
Publicado por: WHK en 16 Septiembre 2019, 06:43 am
Reemplazando:

Código:
central.sucursal as numero

Por:

Código:
DISTINCT(central.sucursal) as numero

También puedes hacerlo con un group by pero utiliza mas memoria ram ya que almacenará los resultados repetidos en una matriz, en cambio distinct() descartará los repetidos.

Estamos suponiendo que usas mysql.


Título: Re: multiples registros solo necesito uno
Publicado por: asdexiva en 16 Septiembre 2019, 06:55 am
por alguna razon no me funciona con distinct con group by si pero al querer mostrar con order la ultima fecha me de la inicial ,lo realizo de esta manera

Código:
	$sql = $this->conn->query("SELECT central.sucursal as numero,t_sucursales.nombre_suc, central.fecha, central.inventario,t_sucursales.numerosucursal FROM central INNER JOIN t_sucursales ON central.sucursal = t_sucursales.numerosucursal  WHERE 

(

MONTH(central.fecha)  LIKE  '%". $mes ."%'
and YEAR(central.fecha)  LIKE  '%". $año ."%'
and t_sucursales.numerosucursal  LIKE  '%". $numerosucursal ."%'
and t_sucursales.nombre_suc LIKE  '%". $nombresursal ."%'
     
    ) GROUP BY central.sucursal  ORDER BY central.fecha DESC") ;