Hay un par de maneras de cómo hacerlo:
Hacer una Consulta SQL compleja, que va a agrupar los datos según sea necesario, el uso de Combinaciones y otras formas de datos de la unión.
La forma más fácil y la peor manera de cómo hacerlo - es extender tu tabla de datos de forma manual:
dataTable.Columns.Add(new DataColumn("newColumn", typeof(string)));
Este se actualizará automáticamente DataGridView en el formulario. Y entonces usted necesitará agregar nuevos datos a la nueva columna de DataTable manualmente.
Prefiero trabajar con dataGridView basado en modelos. Usted necesita crear una clase que representará a su modelo. Como class Person
con las propiedades: Name, Age, etc.
Y, a continuación, establezca esta lista como origen de datos.
List<Person> listOfPersons = new();
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = new BindingSource() { DataSource = listOfPersons};
El principal problema que se necesita para analizar los datos de base de datos para el modelo de formato.
En realidad, esto es donde ORM (Mapeo Objeto-Relacional) es útil. Hay un par de soluciones preparadas, como Dapper. Va a simplificar su vida)