Scusate il titolo equivoco.
Ora mi spiego per benino.

Tabella impiegati
codice:
id cognome posizione
1  Rossi      Commesso
2  Bianchi   Amministrativo
3  Verdi      Commesso
4  Gialli       Magazziniere
5  Rossini    Amministrativo
6  Giallini     Capo Reparto
7  Verdini    Commesso
Ciò che vorrei ottenere dalla mia query
codice:
Amm.vo  Capo Reparto               Commesso Magazziniere
Bianchi    Giallini              Rossi       Gialli
Rossini                          Verdi
                                   Verdini
Non venendo a capo della query ho rigirato il tutto in php...

Codice PHP:
$query mysql_query("select posizione,group_concat(cognome order by cognome separator ',') as nominativi
                      from impiegati
                      group by posizione
                      order by posizione asc"
) or die(mysql_error() );

$array = array();
while (
$row mysql_fetch_assoc($query) )
$array[$row['posizione']] = $row['nominativi'];

$occorrenze = array();
foreach(
$array as $nomi)
$occorrenze[] = substr_count($nomi,',') == substr_count($nomi,',') + 1;
$str '<table>';
$str.= '<thead>';
foreach(
array_keys($array) as $posiz)
    
$str.= "<th>$posiz</th>";
$str.= '</thead>';
$str.= '<tbody>';
for (
$i 0$max max($occorrenze); $i $max$i++) {
    
$str.= '<tr>';
    foreach(
$array as $key => $nomi) {
        
$array_nomi explode(',',$nomi);
        
$str.= isset($array_nomi[$i]) ? '<td>'.$array_nomi[$i].'</td>' '<td></td>'
    }
$str.= '</tr>';
}
$str.= '</tbody>';
$str.= '</table>';

echo 
$str
...ma sarei curioso di sapere se è possibile ottenere un risultato simile tramite sql?
Spero che qualcuno abbia già affrontato un problema simile perchè è da stamattina che
Grazie.