У меня есть таблица в MySQL, как это:MySQL несколько строк в столбцах
Trans Time_In Placard Container Sztp Line Time_Out
===== ======= ======= ========= ==== ==== ========
IN 10:15 254114 CLHU12345 40DH MAE 10:54 <In transaction
OUT 10:15 254114 MAEU45678 20DR SEA 10:54 <Out Transaction (same placard)
OUT 10:15 254114 TTNU98765 20DR CHI 10:54 <Out Transaction (same placard)
IN 11:23 664524 FSCU13479 40RH SEB 11:55 <In transaction
OUT 11:23 664524 PONU55588 40DR MAB 11:55 <Out Transaction (same placard)
IN 13:01 542234 TLHU77665 40RH MOL 13:23 <In transaction (no out)
OUT 13:36 232212 MLHU22341 20DR CMD 13:49 <Out Transaction (no in)
OUT 14:03 187852 AMFU56041 20DR CMD 14:48 <Out Transaction (no in)
OUT 14:03 187852 CCLU44112 20DR CHN 14:48 <Out Transaction, same placard (no in)
Это таблица грузовиков, которые входят в наш терминал уронить контейнер, а иногда, чтобы выбрать один 40" или два 20" (3 транзакции, таким образом, 3 строки). Иногда водитель грузовика просто бросает контейнер и уходит пустой (1 транзакция), поэтому нет транзакции OUT. Или может быть пустым, чтобы выбрать полный контейнер (1 транзакция), поэтому нет транзакции IN, но только один или два OUT (2 транзакции), если он выбирает один 40 или два 20 секунд. Есть даже времена, когда приходит с двумя 20 футами, и листья с 2 20 также, имея 4 транзакции. Время In и Time out одинаково для каждого плаката, поэтому я могу взять его из любой записи, поэтому не стоит беспокоиться об этом.
Ключ Time_In + Placard, поскольку тот же самый плакат может совершать несколько поездок в один и тот же день. Временная метка точно такая же для каждой поездки.
В конце концов, это будет не более 4 транзакций для каждой поездки, и нам нужен отчет по одной строке за поездку, отображающий каждую информацию о транзакции (контейнер, sztp и строку), и если он имеет только один или два, остальные оставшиеся данные транзакции будут пустыми. Для тех, кто не знаком с морскими терминами, sztp означает размер/тип, например 40DR, это 40 футов сухого, 20DR 20 футов сухого, 40RH 40 футовый рефрижераторный куб и т. Д. И т. Д.
Мне нужно закончить с чем-то вроде этого:
Time In Placard Cont1 Sztp1 Line1 Cont2 Sztp2 Line2 Cont3 Sztp3 Line3 Cont4 Sztp4 Line4 Time Out
======= ======= ========= ===== ===== ========= ===== ===== ========= ===== ===== ========= ===== ===== ========
10:15 254114 CLHU12345 40DH MAE MAEU45678 20DR SEA TTNU98765 20DR CHI null null null 10:54
11:23 664524 FSCU13479 40RH SEB PONU55588 40DR MAB null null null null null null 11:55
13:01 542234 TLHU77665 40RH MOL null null null null null null null null null 13:23
13:36 232212 MLHU22341 20DR CMD null null null null null null null null null 13:49
14:03 187852 AMFU56041 20DR CMD CCLU44112 20DR CHN null null null null null null 14:48
Предполагаемое использование этой таблицы будет для отчета BIRT.
Благодарим за помощь.
Кстати, я уже задал аналогичный вопрос, но с самого начала это было не очень ясно, поэтому я сообщил об этом модератору и разместил его. Извиняюсь за это. Надеюсь, ты поможешь мне.
BIRT вызывает сводные таблицы «кросс-таблицы». FYI. –
Значит, ты имеешь в виду, что я могу сделать с одной только битой? Звучит как сделка. Я буду исследовать это. Оценивается любая точка в правильном направлении. –
Сколько строк будет иметь окончательный отчет? если будет в тысячах или более, я бы сделал тяжелый подъем запроса в SQL с левыми связанными подзапросами. Доминик знает BIRT очень хорошо, так что вы можете пойти с ответом, который у них есть. Я узнал, как сделать решение SQL-запроса на SE, чтобы вы могли найти его здесь, если нет, сообщите мне, и я буду работать, чтобы что-то публиковать. –