Ver Mensaje Individual
  #24 (permalink)  
Antiguo 28/08/2009, 00:48
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Consulta de movimientos secuenciales

A mí me funciona perfectamente. He corregido alguna cosilla. Observa que en tu primera consulta muestras los segundos en lugar de los minutos (me refiero a la sintaxis: escribes %s en lugar de %i en dos ocasiones)
Pero veamos el problema:
He creado una base con tu nick y he introducido los datos que presentas:
-- phpMyAdmin SQL Dump
-- version 2.9.2
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 28-08-2009 a las 08:44:55
-- Versión del servidor: 5.0.27
-- Versión de PHP: 5.2.1
--
-- Base de datos: `nonpublic`
--
CREATE DATABASE `nonpublic` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `nonpublic`;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `entradas`
--

CREATE TABLE `entradas` (
`id` int(11) NOT NULL auto_increment,
`articulo` varchar(10) NOT NULL,
`fecha_hora` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

--
-- Volcar la base de datos para la tabla `entradas`
--

INSERT INTO `entradas` (`id`, `articulo`, `fecha_hora`) VALUES
(1, '01', '2009-09-27 13:14:00'),
(2, '01', '2009-09-27 13:03:00'),
(3, '01', '2009-09-27 14:00:00'),
(4, '02', '2009-09-27 13:25:00'),
(5, '03', '2009-09-27 13:07:00');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `salidas`
--

CREATE TABLE `salidas` (
`id` int(11) NOT NULL auto_increment,
`articulo` varchar(10) NOT NULL,
`fecha_hora` datetime NOT NULL,
`id_entrada` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Volcar la base de datos para la tabla `salidas`
--

INSERT INTO `salidas` (`id`, `articulo`, `fecha_hora`, `id_entrada`) VALUES
(1, '01', '2009-09-27 13:32:00', 1),
(2, '01', '2009-09-27 13:11:00', 2),
(3, '02', '2009-09-27 13:32:00', 4);

Luego he lanzado esta consulta.
Código sql:
Ver original
  1. SELECT e.articulo articulo, fecha_hora, DATE_FORMAT( e.fecha_hora, "%d-%m-%y" ) fecha, DATE_FORMAT( e.fecha_hora, "%H:%i" ) fechahora, 'E' tipo_mov FROM entradas e
  2. UNION ALL
  3. SELECT s.articulo articulo, fecha_hora, DATE_FORMAT( s.fecha_hora, "%d-%m-%y" ) fecha, DATE_FORMAT( s.fecha_hora, "%H:%i" ) fechahora, 'S' tipo_mov
  4. FROM salidas s
  5. ORDER BY fecha_hora, articulo, tipo_mov

La he probado y funciona bien.