У меня есть сценарий, в котором я пытаюсь получить данные от длинных до широких.(используя MariaDB 10.2 и HeidiSQL 9.4 в Windows)
По сути, я стараюсь, чтобы каждый 'id' имел одну строку.
У каждого «идентификатора» может быть один или несколько «sqn» (которые всегда являются последовательными числами для каждого идентификатора, начинающегося с 1.) Я не всегда знаю максимальное число «sqn».
Для каждой комбинации id-sqn есть несколько столбцов, в которых значение является постоянным для каждого 'id' -подобного 'tpn'
Есть другие, которые имеют разные значения, уникальные для каждого 'sqn' для каждого 'id'- как 'sqft', 'amnt' и 'date'
Первая - это стартовая таблица, вторая - то, где я пытаюсь добраться:
╔═════╦═════╦═════╦══════╦══════╦═════════╗
║ id ║ sqn ║ tpn ║ sqft ║ amnt ║ date ║
╠═════╬═════╬═════╬══════╬══════╬═════════╣
║ 1 ║ 1 ║ 821 ║ 110 ║ 101 ║ 1/1/00 ║
║ 1 ║ 2 ║ 821 ║ 150 ║ 195 ║ NULL ║
║ 2 ║ 1 ║ 551 ║ NULL ║ 65 ║ 6/1/15 ║
║ 2 ║ 2 ║ 551 ║ 900 ║ 190 ║ 1/1/01 ║
║ 2 ║ 3 ║ 551 ║ 220 ║ 110 ║ 1/1/05 ║
║ 3 ║ 1 ║ 821 ║ 900 ║ 44 ║ 7/1/12 ║
╚═════╩═════╩═════╩══════╩══════╩═════════╝
╔═════╦═══════╦══════╦═══════╦════════╦═══════╦═══════╦═════════╦════════
║ id ║ sqft1 ║ tpn ║ amnt1 ║ date1 ║ sqft2 ║ amnt2 ║ date2 ║ sqft3...
╠═════╬═══════╬══════╬═══════╬════════╬═══════╬═══════╬═════════╬════════
║ 1 ║ 110 ║ 821 ║ 101 ║ 1/1/00 ║ 150 ║ 195 ║ NULL ║ NULL
║ 2 ║ NULL ║ 551 ║ 65 ║ 6/1/15 ║ 900 ║ 190 ║ 1/1/01 ║ 220
║ 3 ║ 900 ║ 821 ║ 44 ║ 7/1/12 ║ NULL ║ NULL ║ NULL ║ NULL
╚═════╩═══════╩══════╩═══════╩════════╩═══════╩═══════╩═════════╩═════════
Конечно, я могупросто полностью вручную, взглянув на каждый экземпляр таблицы, чтобы найти максимальное значение 'sqn', а затем просто вручную переместите его в ...
Но у меня есть сотни - тысячи таблиц этих типов, которые обновляютсячасто (и я не могу изменить форму данных, которые я получаю - я могу только потреблять их, но не проектировать их во внешнем интерфейсе.) Я пробовал варианты подсказок сводной таблицы - но при использовании как 'id', так и 'sqn«Я застрял (как http://sqlfiddle.com/#!9/09408/2/4)
Спасибо!