Vous devez stocker la société associée avec son service sur chaque ligne de la base de données. Puisqu'il n'y a pas d'"ordre" implicite dans les lignes de la base de données, il n'y a aucun moyen pour une ligne de traiter sa société de la même manière que sur la ligne "avant" (il n'y a pas de sens à "avant").
Cela ne vaut pas la peine d'effacer le nom de société redondant sur les lignes d'un ensemble de résultats de requête. Laissez-les simplement apparaître sur chaque ligne, même si cela semble redondant.
Ensuite, dans votre application, lorsque vous présentez les données, vous faites avoir la possibilité de les traiter dans l'ordre au fur et à mesure que vous les affichez. Donc, vous feriez quelque chose comme ça (pseudocode):
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