Это код. Проблема в том, что результат имеет дубликат даты. Я хочу суммировать количество повторяющихся дат каждого столбца по GROUP BY, но там написано, что «это несовместимо с sql_mode = only_full_group_by»,
Кто-то предлагает отключить этот параметр. Я не знаю как и удивляюсь, как лучше решить эту проблему.
Схема (MySQL v8.0)
CREATE TABLE IF NOT EXISTS `test` (
`Date` DATE NOT NULL,
`USD` VARCHAR(10) NOT NULL,
`EUR` VARCHAR(10) NOT NULL
) DEFAULT CHARSET=utf8;
INSERT INTO `test` VALUES
('2020-03-06', -1000000,6930860),
('2020-03-07', -1000000,6930860),
('2020-04-13', -2000000,13966090),
('2020-05-13', -2000000,13963260),
('2020-05-28', 1000000,-654773.8),
('2020-06-01', 1000000,-1135530);
CREATE TABLE IF NOT EXISTS `test2` (
`Date` DATE NOT NULL,
`USD` VARCHAR(10) NOT NULL,
`EUR` VARCHAR(10) NOT NULL
) DEFAULT CHARSET=utf8;
INSERT INTO `test2` VALUES
('2020-03-05', -1000011,6930860),
('2020-03-09', -1000022,6930860),
('2020-04-3', -2000033,13966090),
('2020-05-10', -2000044,13963260),
('2020-05-28', 1000055,-654773.8),
('2020-06-01', 1000066,-1135530);
Запрос # 1
SELECT * FROM
((SELECT * FROM
(SELECT Date FROM test
UNION
SELECT Date FROM test2
ORDER BY Date) AS d
LEFT OUTER JOIN test USING (Date))
UNION
(SELECT * FROM
(SELECT Date FROM test
UNION
SELECT Date FROM test2
ORDER BY Date) AS d2
LEFT OUTER JOIN test2 USING (Date))) AS D
ORDER BY Date ASC;
| Date | USD | EUR |
| ---------- | -------- | --------- |
| 2020-03-05 | -1000011 | 6930860 |
| 2020-03-05 | | |
| 2020-03-06 | -1000000 | 6930860 |
| 2020-03-06 | | |
| 2020-03-07 | -1000000 | 6930860 |
| 2020-03-07 | | |
| 2020-03-09 | -1000022 | 6930860 |
| 2020-03-09 | | |
| 2020-04-03 | -2000033 | 13966090 |
| 2020-04-03 | | |
| 2020-04-13 | -2000000 | 13966090 |
| 2020-04-13 | | |
| 2020-05-10 | | |
| 2020-05-10 | -2000044 | 13963260 |
| 2020-05-13 | -2000000 | 13963260 |
| 2020-05-13 | | |
| 2020-05-28 | 1000000 | -654773.8 |
| 2020-05-28 | 1000055 | -654773.8 |
| 2020-06-01 | 1000000 | -1135530 |
| 2020-06-01 | 1000066 | -1135530 |
Мне нужен такой результат.
1. Одна дата в одной строке и
2. СУММА суммы на ту же дату.
3. удалить пустые строки.
![enter image description here](https://i.stack.imgur.com/MNn93.png)
Спасибо.
Посмотреть на БД Fiddle