I have not used PIVOT, however it can be done using derived, temp table or table variable etc.. Below is using derived table:
SELECT AId, SUM(Derived.F1) AS F1,SUM(Derived.F2) AS F2,SUM(Derived.F3) AS F3 ,SUM(Derived.F4) AS F4 FROM
(
SELECT T3.AID,
CASE FName WHEN 'F1' THEN COUNT(1) ELSE 0 END AS F1,
CASE FName WHEN 'F2' THEN COUNT(1) ELSE 0 END AS F2,
CASE FName WHEN 'F3' THEN COUNT(1) ELSE 0 END AS F3,
CASE FName WHEN 'F4' THEN COUNT(1) ELSE 0 END AS F4
FROM TABLE2 T2 INNER JOIN TABLE1 T1 ON T2.FId = T1.FId INNER JOIN TABLE3 T3 ON T1.AId = T3.AId
GROUP BY T3.AID, FName
) Derived GROUP BY AID
Hope this helps.. Enjoy coding :)