Как получение предыдущего реестра той же даты, не используя Id

У меня есть следующая ситуация: у меня есть таблица, где я приношу реестры дневник измерительного прибора воды. В то время как я брал ежедневное чтение и захватывал ее в системе, у меня не было проблемы, так как я отраженный хорошо ежедневное потребление. Проблема предстает передо мной, когда я делаю более одного чтения в день, так как у них есть та же дата реестра. Когда я делаю два задержания чтения измерительного прибора, в тот же день в различных расписаниях, вместо того, чтобы получать предыдущий реестр (1), он идет к тому, у которого есть предыдущая дата (2). и нуждаясь в реестре примера (1), чтобы мочь делать вычисление потребления в течение дня.

Эдж:

1 - Предыдущий реестр даты от 26-03-2019-ого числа:

2019-03-26 6:53:37 2019-03-26 339304.00 Море 2.02

2 - Реестр, который возвращает мне консультацию SQL:

2019-03-25 9:09:57 2019-03-25 339102.00 Lun 5.95

Задержание чтения, возможно реализовывать, совсем в тот же день, из-за которого я не могу использовать id, так как системный администратор может загружать формой, приведенный в беспорядок чтение.

(Эдж: сначала он может загружать мне 2019-03-26 и после загружать 2019-03-25.)

Далее я оставляю ему консультацию и экран, где передо мной предстает ошибка, чтобы видеть, могут ли они помогать мне.

Спасибо.

Консультируйся, чтобы получать предыдущий реестр:

SELECT medidor_dias.* FROM (`medidor_dias`) WHERE `fecha_medida` <  '2019-03-26'   AND `id_tipo_medidor` = '4'  AND `medidor_dias`.`fecha_medida` >= '2019-02-26' AND `medidor_dias`.`fecha_medida` <= '2019-03-28'  ORDER BY `id_tipo_medidor` ASC, `fecha_medida` DESC , medidor_dias.hora_ejecutado DESC LIMIT 1

Изображение Ошибки 26-03-2019-ого числа:

В изображении возможно видеть, что день: 26-03-2019 я захватываю два раза а следовательно они показывают два реестра. Во втором чтении этого дня это накоплено общее количество двух чтения, относительно 25-03-2019-ого числа. Стоимость, которая была бы должна идти в потреблении второго чтения, - 2.47 и не 4.49, которые это тот, который у него есть. Формула, которую я использую для вычисления, - следующая (Последний реестр - предыдущий Реестр = я трачу)

introducir la descripción de la imagen aquí

1
задан 28.03.2019, 11:32
1 ответ

Aquà - оставил soluci¦n, который я дал ему моему вопросу, если кого-то больше ему не хватает. В этом soluci¦n я был должен делать пере-работу пойдите из меня таблица . Это может реализовывать это, потому что он был , пойдите , он не составляет часть никакого ключа forania и одинокий я это использую для издавать и удалять реестр, в случае, которого требовали бы. Благодаря всем из-за Вашей помощи.

SET @a = 0;
ALTER TABLE medidor_dias DROP id;
ALTER TABLE medidor_dias ADD id int NOT NULL ;
UPDATE medidor_dias  SET id = @a:=@a+1    ORDER BY `fecha_medida` ASC , medidor_dias.hora_ejecutado ASC ;
ALTER TABLE `medidor_dias` ADD INDEX(`id`);
ALTER TABLE `medidor_dias` CHANGE `id` `id` INT(15) NOT NULL AUTO_INCREMENT PRIMARY KEY 

;

0
ответ дан 19.11.2019, 21:21