Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/08/2017, 12:43
alejandromaringomez
 
Fecha de Ingreso: abril-2010
Mensajes: 267
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: [sql] limitar registros, calculo y ordenar

Jaja sí a veces me explico algo mal, lo que yo quiero es, tengo esa tabla, adjunto el código sql para la tabla y información:

Código SQL:
Ver original
  1. -- phpMyAdmin SQL Dump
  2. -- version 4.6.5.2
  3. -- https://www.phpmyadmin.net/
  4. --
  5. -- Servidor: 127.0.0.1
  6. -- Tiempo de generación: 05-08-2017 a las 20:40:03
  7. -- Versión del servidor: 10.1.21-MariaDB
  8. -- Versión de PHP: 7.1.1
  9.  
  10. SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
  11. SET time_zone = "+00:00";
  12.  
  13.  
  14. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  15. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  16. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  17. /*!40101 SET NAMES utf8mb4 */;
  18.  
  19. --
  20. -- Base de datos: `sheeps_control`
  21. --
  22.  
  23. -- --------------------------------------------------------
  24.  
  25. --
  26. -- Estructura de tabla para la tabla `liters`
  27. --
  28.  
  29. CREATE TABLE `liters` (
  30.   `id` INT(11) NOT NULL,
  31.   `bolu` text,
  32.   `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  33.   `liters` INT(11) NOT NULL DEFAULT '0',
  34.   `user_id` INT(11) NOT NULL DEFAULT '0'
  35. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
  36.  
  37. --
  38. -- Volcado de datos para la tabla `liters`
  39. --
  40.  
  41. INSERT INTO `liters` (`id`, `bolu`, `time`, `liters`, `user_id`) VALUES
  42. (1, 'A1', '2017-08-05 09:26:41', 20, 0),
  43. (2, 'A2', '2017-08-05 09:26:50', 50, 0),
  44. (3, 'A1', '2017-08-05 09:26:58', 10, 0),
  45. (4, 'A1', '2017-08-04 09:45:44', 13, 0),
  46. (5, 'A2', '2017-08-05 22:00:00', 50, 0);
  47.  
  48. --
  49. -- Índices para tablas volcadas
  50. --
  51.  
  52. --
  53. -- Indices de la tabla `liters`
  54. --
  55. ALTER TABLE `liters`
  56.   ADD PRIMARY KEY (`id`);
  57.  
  58. --
  59. -- AUTO_INCREMENT de las tablas volcadas
  60. --
  61.  
  62. --
  63. -- AUTO_INCREMENT de la tabla `liters`
  64. --
  65. ALTER TABLE `liters`
  66.   MODIFY `id` INT(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
  67. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  68. /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
  69. /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Bien, yo lo que quiero es que sólo se calcule para el mismo "bolu", es decir, por ejemplo el A1, que sólo cuente los dos últimos registros más recientes, es decir, el del día 4 se quedaría fuera ya, y de esos dos últimos registros haga una regla de tres con los litros: LITROS DEL DÍA MÁS RECIENTE * 100 / LITROS DEL OTRO DÍA, y que deje 2 decimales, una vez hecho eso con cada "bolu", lo ordene por el resultado que nos ha dado cada uno de forma decreciente.

Creo que ahora me he explicado un poco mejor XD, básicamente lo que tendré es un ranking del que mejor ha progresado o se ha superado del registro anterior. Así ver como van progresando.

Mil gracias :)

Última edición por alejandromaringomez; 05/08/2017 a las 12:44 Razón: Intento de que no muestre de golpe el código SQL