Premesso che queste cose solitamente si fanno a lato applicazione .......
 tu vorresti fare con una unica SELECT quella roba li ....
 assomiglia un pochino a una PIVOT o Campi Incrociati ma se le righe (record) 
 sono solamente 10 che poi diventeranno 10 colonne (campi) allora puoi fare cosi:
 anche se fossero 20 o 30 potresti
 Immagina di avere questa tabella di nome "Tab"
- Key ----- Testo ----- Chiave primaria
- Val1 ------ Numerico 
- Val2 ------ Numerico
 Per la comprensione cominciamo a fare più SELECT 
 che alla fine andremo a nidificare in una unica
 Ho usato Access per la sintassi, poi dovrai adeguarla al tuo DB
 Facciamo una prima SELECT di nome "Q01" per numerare i record
	codice:
	SELECT 
T1.Key, T1.Val1, T1.Val2, 
"N" & Format((SELECT Count(T2.Key) FROM Tab AS T2 WHERE T1.Key>=T2.Key),"00") AS RecNum 
FROM 
Tab AS T1
;
 
 poi su "Q01" facciamo la "Q04" che ci mette il Val1 in orizzontale
	codice:
	SELECT 
Max(IIf([RecNum]="N01",[Val1])) AS Xx01, 
Max(IIf([RecNum]="N02",[Val1])) AS Xx02, 
Max(IIf([RecNum]="N03",[Val1])) AS Xx03, 
Max(IIf([RecNum]="N04",[Val1])) AS Xx04, 
Max(IIf([RecNum]="N05",[Val1])) AS Xx05, 
Max(IIf([RecNum]="N06",[Val1])) AS Xx06 
FROM 
Q01
;
 
 poi ancora su "Q01" facciamo la "Q05" che ci mette il Val2 in orizzontale
	codice:
	SELECT 
Max(IIf([RecNum]="N01",[Val2])) AS Xx01, 
Max(IIf([RecNum]="N02",[Val2])) AS Xx02, 
Max(IIf([RecNum]="N03",[Val2])) AS Xx03, 
Max(IIf([RecNum]="N04",[Val2])) AS Xx04, 
Max(IIf([RecNum]="N05",[Val2])) AS Xx05, 
Max(IIf([RecNum]="N06",[Val2])) AS Xx06 
FROM 
Q01
;
 
poi su "Q04" e "Q05" facciamo la "Q08" che con UNION sovrappone le 2 righe
	codice:
	SELECT 
Q04.Xx01, Q04.Xx02, Q04.Xx03, Q04.Xx04, Q04.Xx05, Q04.Xx06 
FROM 
Q04 
UNION ALL 
SELECT 
Q05.Xx01, Q05.Xx02, Q05.Xx03, Q05.Xx04, Q05.Xx05, Q05.Xx06 
FROM 
Q05
;
 
 
 
 
Che messo in una unica SELECT multinidificata viene cosi
	codice:
	SELECT 
Q04.Xx01, Q04.Xx02, Q04.Xx03, Q04.Xx04, Q04.Xx05, Q04.Xx06 
FROM 
  (
  SELECT 
  Max(IIf([RecNum]="N01",[Val1])) AS Xx01, 
  Max(IIf([RecNum]="N02",[Val1])) AS Xx02, 
  Max(IIf([RecNum]="N03",[Val1])) AS Xx03, 
  Max(IIf([RecNum]="N04",[Val1])) AS Xx04, 
  Max(IIf([RecNum]="N05",[Val1])) AS Xx05, 
  Max(IIf([RecNum]="N06",[Val1])) AS Xx06 
  FROM 
    (
    SELECT 
    T1.Key, T1.Val1, T1.Val2, 
    "N" & Format((SELECT Count(T2.Key) FROM Tab AS T2 WHERE T1.Key>=T2.Key),"00") AS RecNum 
    FROM 
    Tab AS T1
    ) AS Q01
  ) AS Q04 
UNION ALL 
SELECT 
Q05.Xx01, Q05.Xx02, Q05.Xx03, Q05.Xx04, Q05.Xx05, Q05.Xx06 
FROM 
  (
  SELECT 
  Max(IIf([RecNum]="N01",[Val2])) AS Xx01, 
  Max(IIf([RecNum]="N02",[Val2])) AS Xx02, 
  Max(IIf([RecNum]="N03",[Val2])) AS Xx03, 
  Max(IIf([RecNum]="N04",[Val2])) AS Xx04, 
  Max(IIf([RecNum]="N05",[Val2])) AS Xx05, 
  Max(IIf([RecNum]="N06",[Val2])) AS Xx06
  FROM 
    (
    SELECT 
    T1.Key, T1.Val1, T1.Val2, 
    "N" & Format((SELECT Count(T2.Key) FROM Tab AS T2 WHERE T1.Key>=T2.Key),"00") AS RecNum 
    FROM Tab AS T1
    ) AS Q01
  ) AS Q05
;
 
Facci sapere
.