Есть таблица, в которой дублируются REF_DOC_ID.
REF_DOC_ID ARTICLE_ID Amount
1 1 10
2 1 10
2 2 10
3 2 10
Надо ее обновить к виду
REF_DOC_ID ARTICLE_ID Amount
1 1 10
2 2 20
3 2 10
То есть нужна группировка по REF_DOC и суммирование по Amount. Article_ID в любой сгруппированной строке должен быть 2. Помогите, пожалуйста, составить UPDATE. Пробовала много вариантов, не удается. Вот один из них
UPDATE `Test100` t1, (SELECT `REF_DOC_ID`, MIN(`ARTICLE_ID`) as
`Min`, SUM(`Amount`) as `Sum` FROM `Test100` GROUP BY `REF_DOC_ID`)
as `t2` CASE WHEN `t1`.`REF_DOC_ID` IN (SELECT REF_DOC_ID FROM
(SELECT REF_DOC_ID, COUNT(*) as `num` FROM Test100 GROUP BY
REF_DOC_ID) z WHERE `num`= 2) THEN DELETE FROM t1
WHERE t1.`REF_DOC_ID`= z.`REF_DOC_ID` AND z.`num` = 2
AND t1.`ARTICLE_ID`= t2.`MIN` END
SET t1.`REF_DOC_ID` = t2.`REF_DOC_ID`, t1.`ARTICLE_ID`=t2.`MAX`,
t1.`Amount` = t2.`SUM`
Для решения озвученной задачи UPDATE неприменим. Причина - кроме обновления части записей, требуется удаление остальных записей. Потому решение должно состоять минимум из 2 запросов.
Но самое простое (имхо) решение состоит из 3 запросов:
CREATE /* TEMPORARY */ TABLE temp (ref_doc_id INT
, article_id INT
, amount INT)
SELECT ref_doc_id
, CASE COUNT(article_id) WHEN 1 THEN MAX(article_id) ELSE 2 END
, SUM(amount)
FROM Test100
GROUP BY ref_doc_id;
TRUNCATE Test100;
INSERT INTO Test100 (ref_doc_id, article_id, amount)
SELECT ref_doc_id, article_id, amount
FROM temp;
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
На одном хостинге, при создании таблиц в базе данных, по умолчанию создаются таблицы myisamИ дело в том, что это нигде нельзя выбрать, чтобы по умолчанию...
В карточке товара Woocommerce на вкладке "Дополнительно" есть возможность включить отзывы, отметив соответствующий чекбокс
Привет, не могу придумать как сделать растяжение текста на всю ширину экрана в TextView, в конце строки всегда остаются большие пробелыНадо сделать...
Приложение падает когда пытаюсь программно установить цвет фона кнопкиКнопку инициализировал в Java, всё связал