2017-02-10 3 views
0

Ich versuche, die zweite Tabelle von der ersten zu erreichen. Ich gruppiere nach einigen Daten und möchte die wiederholten Werte nur einmal anzeigen.Show GroupBy gemeinsamen Wert einmal in einer Spalte

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 

Ich konnte ein passendes Ergebnis dafür nicht suchen. Nicht sicher, ob es in MySQL irgendwelche Fragen dazu gab.

Ich habe einen Link für MSSQL gefunden, aber ich möchte die Abfrage nicht so kompliziert machen. Der Link zu dieser Frage ist Display the record in column for grouping only once

Dies ist eine relevante Frage.

Ist es möglich, dies zu machen?

Alle Vorschläge sind willkommen.

+1

Solche Anzeigeprobleme sollten nicht in SQL, sondern außerhalb Ihrer GUI behandelt werden. –

+0

stimme ich völlig zu, aber kann keinen gesunden Menschenverstand Bosse, richtig :) – user2595861

Antwort

1

Sie können Variablen in Felder Namen verwenden null zurückzukehren, wenn neue Zeile alten Wert hat die zweite Tabelle zu erstellen:

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 

Ergebnis muss wie diese aussehen werden:

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

Hinweis: := weisen der Variablen einen neuen Wert zu und = ist logisch für IF.

(*) Abfrage aktualisiert mit neuen SET Befehl in der ersten Zeile, wegen Fehler in mehreren laufenden Abfrage und verpasste Ergebnisse.

+1

Nur weil Sie * können *, folgt es nicht, dass Sie * sollten * – Strawberry

+0

Dies funktioniert! Danke vielmals ! – user2595861

+0

@MohaMad: Jetzt ... Das funktioniert gut, wenn wir mehrere Daten im erforderlichen Feld haben, aber wenn wir nur eine Art haben, dann zeigt es korrekt für die erste Ausführung, aber zum zweiten Mal macht es auch den ersten Wert NULL! – user2595861

Verwandte Themen