Я хочу получить максимальное расхождение между двумя таблицами в день на один идентификатор.У меня есть следующие данные в базе данных mysql
insert into test.foo values ('2010-01-10', 1, 10);
insert into test.foo values ('2010-01-10', 1, 5);
insert into test.foo values ('2010-01-10', 2, 10);
insert into test.foo values ('2010-01-10', 2, 10);
insert into test.foo values ('2010-01-10', 3, 15);
insert into test.foo values ('2010-01-10', 3, 15);
insert into test.foo values ('2010-01-11', 1, 5);
insert into test.foo values ('2010-01-11', 1, 5);
insert into test.foo values ('2010-01-11', 2, 5);
insert into test.foo values ('2010-01-11', 2, 5);
insert into test.foo values ('2010-01-11', 3, 5);
insert into test.foo values ('2010-01-11', 3, 5);
insert into test.bar values ('2010-01-10', 1, 5);
insert into test.bar values ('2010-01-10', 1, 5);
insert into test.bar values ('2010-01-10', 2, 5);
insert into test.bar values ('2010-01-10', 2, 5);
insert into test.bar values ('2010-01-10', 3, 5);
insert into test.bar values ('2010-01-10', 3, 5);
insert into test.bar values ('2010-01-11', 1, 10);
insert into test.bar values ('2010-01-11', 1, 10);
insert into test.bar values ('2010-01-11', 2, 5);
insert into test.bar values ('2010-01-11', 2, 5);
insert into test.bar values ('2010-01-11', 3, 5);
insert into test.bar values ('2010-01-11', 3, 5);
Вот мой запрос:
SELECT t1.`date`, t1.id, t1.sums, t2.sums, max(t1.sums - t2.sums) FROM
(select `date`, id, sum(val) sums
from test.foo
group by `date`, id) as t1,
(select `date`, id, sum(val) sums
from test.bar
group by `date`, id) as t2
WHERE t1.`date` = t2.`date` AND t1.id = t2.id
group by t1.`date`
Я получаю такой результат:
+---------------------+----+------+------+------------------------+
| date | id | sums | sums | max(t1.sums - t2.sums) |
+---------------------+----+------+------+------------------------+
| 2010-01-10 00:00:00 | 1 | 15 | 10 | 20 |
| 2010-01-11 00:00:00 | 1 | 10 | 20 | 0 |
+---------------------+----+------+------+------------------------+
2 rows in set (0.00 sec)
I 'я хотел бы получить этот результат: я получаю этот результат:
+---------------------+----+------+------+------------------------+
| date | id | sums | sums | max(t1.sums - t2.sums) |
+---------------------+----+------+------+------------------------+
| 2010-01-10 00:00:00 | 1 | 15 | 10 | 20 |
| 2010-01-11 00:00:00 | 2 | 10 | 10 | 0 | <-----
+---------------------+----+------+------+------------------------+
Кто-нибудь может мне помочь?Я хотел бы получить максимальную разницу, а затем линию, которая сопровождала ее.Этот запрос дает мне правильную разницу, но не идентификатор и суммы, которые идут с ним.Коллега предложил также группировать по идентификатору, но, как я думал, это просто выровняло результат, и каждый идентификатор был указан вместо одного идентификатора за день, который имел максимальную разницу.
Большое спасибо заранее