È necessario memorizzare la società associata con il relativo reparto su ogni riga del database. Dal momento che non esiste un "ordine" implicito alle righe nel database, non c'è modo per una riga di trattare la propria azienda come la stessa della riga "prima" (non c'è alcun significato per "prima").
Non vale la pena di cancellare il nome dell'azienda ridondante sulle righe di un set di risultati di query. Lascia che appaiano su ogni riga anche se sembra ridondante.
Quindi nella tua applicazione, mentre stai presentando i dati, fai avere l'opportunità di elaborarli nell'ordine in cui li visualizzi. Quindi faresti qualcosa del genere (pseudocodice):
query 'SELECT Company, Department FROM MyTable ORDER BY Company, Department'
prev_company = ''
while row = fetch
do
if row.company == prev_company
display ''
else
display row.company
prev_company = row.company
display row.department
done