Wenn Du eine View basteln willst, benötigst Du eine fixe Spalten-Anzahl. Wenn die Werte (und somit auch die Anzahl der Spalten nicht bekannt ist), wird es schwierig.

Das einzige was Du machen kannst, ist eine feste Anzahl an Spalten vorzusehen und dann die Spalten, abh. von den P1-Werten eine nach der anderen befüllen.
Etwa so:

Code:
 With x as (Select Row_Number() Over(Order By P1) P1Count, P1 BP1
              from TableB)
 Select A1, A2, Sum(Case When P1Count = 1 Then 1 Else 0 End) Col1,
                Sum(Case When P1Count = 2 Then 1 Else 0 End) Col2,
                Sum(Case When P1Count = 3 Then 1 Else 0 End) Col3,
                Sum(Case When P1Count = 4 Then 1 Else 0 End) Col4,
                .... weitere Spalten  
    from x join TableA on P1 = BP1
    Group By a1, a2;
Birgitta