Musisz przechowywać powiązaną firmę z jej działem w każdym wierszu w bazie danych. Ponieważ nie ma czegoś takiego jak niejawne „zamówienie” na wiersze w bazie danych, nie ma możliwości, aby wiersz traktował swoją firmę tak samo, jak wiersz „przed” (nie ma znaczenia „przed”).
Wymazywanie nadmiarowej nazwy firmy w wierszach zestawu wyników zapytania nie jest warte trudu. Po prostu pozwól im pojawiać się w każdym rzędzie, nawet jeśli wygląda na zbędne.
Następnie w swojej aplikacji, gdy prezentujesz dane, robisz mieć możliwość ich przetwarzania w kolejności, w jakiej je wyświetlasz. Więc zrobiłbyś coś takiego (pseudokod):
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