2017-02-10 7 views
0

Я пытаюсь достичь второй таблицы с первой. Я группирую некоторые данные и хочу показывать повторяющиеся значения только один раз.Показать GroupBy общее значение один раз в столбце

Aircode FlightNumber Locator Title 
A01  F01   A  Miss 
A01  F01   A  Mr 
A01  F01   B  Miss 
A01  F01   B  Miss 
A01  F02   A  Mr 
A01  F02   A  Mr 
A01  F02   C  Mr 
A02  F01   A  Mr 


Aircode FlightNumber Locator Title 
A01  F01   A  Miss 
           Mr 
         B  Miss 
           Miss 
     F02   A  Mr 
           Mr 
         C  Mr 
A02  F01   A  Mr 

Я не смог найти подходящий результат для этого. Не уверен, был ли в MySQL вопрос для этого.

Я нашел ссылку для MSSQL, но я не хочу усложнять этот запрос. Ссылка на этот вопрос: Display the record in column for grouping only once

Это вопрос.

Можно ли это сделать?

Любые предложения приветствуются.

+1

Такие проблемы отображения не должны решаться в SQL, а снаружи в вашем графическом интерфейсе. –

+0

Я полностью согласен, но не могу вливать здравый смысл в боссов, правильно :) – user2595861

ответ

1

Вы можете использовать переменные в именах полей для возврата null, когда новая строка имеет старое значение, чтобы создать вторую таблицу:

SET @aircode_var = '' , @flight_var='' , @locator_var='' ; 
SELECT if(@aircode_var=Aircode, null,@aircode_var:=Aircode), 
     if(@flight_var=FlightNumber , null ,@flight_var:=FlightNumber), 
     if(@locator_var=Locator , null ,@locator_var:=Locator), 
     Title 
FROM tablename 
group by Aircode , FlightNumber , Locator 

Результат должен быть похож на этот:

A01 F01  A  Miss 
null null null Mr 
null null B  Miss 
.... 

Примечание: := присваивает новое значение переменной, а = является логическим для IF.

(*) Запрос обновлен с новой командой SET в первой строке из-за ошибки в нескольких запросах запуска и пропущенных результатах.

+1

Просто потому, что вы * можете *, это не следует, что вы * должны * – Strawberry

+0

Это работает! благодаря тонну ! – user2595861

+0

@MohaMad: теперь ... Это прекрасно работает, когда у нас есть несколько данных в нужном поле, но если у нас есть только один вид, он корректно показывает первое исполнение, но во второй раз он также делает первое значение NULL! – user2595861