salut,
tu cherche à faire deux requêtes donc ben je vois pas le problème
si tu veux tout dans une seul la technique de
Mazarini doit fonctionner je pense, et de toute façon les sgbd sont fait pour cela.
J'ajouterais que tu souhaite mettre ensemble deux infos totalement différentes : le nombre de site total et le nombre d'élément par site.
le nombre de site est simple
le nombre d'élement par site nécéssite un group by !
la soit tu met les deux ensemble mais tu va te balader le nb total de site pour chaque site => anerie
soit deux requêtes, quand on peux pas faire autrement on faite deux requêtes, et c'est le cas quand les infos n'ont rien a voir (je ne demande à un chausseur le nombre de marque de pompes qu'il a quand je veux acheter un pull

)
tu peux aussi t'orienter vers une vue plus complexe ou une procédure stockée.
ce n'est pas une hérésie de faire une requête avec des requêtes imbriquées, c'est courant et parfois obligé.
les fonctions de groupe comme count (ou max / min etc) ne sont pas trivial à utiliser malgré leurs apparentes simplicités. (tu n'a pas de group by d'ailleurs, ceci pourrait surement t'aider.).
donc au final
select count(*) as nbtotal from A; (vu qu'a priori le site est la référence de la table A après si tu a plusieurs site à la même adresse et que tu veux que les adresses faut un distinct adresse.
select count(*) as nbelementparsite, site from b group by site;
Si par contre tu peux avoir des doublons de site dans les deux alors une requêtes avec un group by, pourquoi pas ceci dit je ne suis pas sur qu'il y ai pas un bordel.
la jointure avec left ou right suivant le sens que tu soouhaite va te permettre d'avoir des "null" la où le sgbd ne trouve d'infos à mettre (et ne pas exclure l'enregistrement parce que pas de correspondance).
@+
Il en faut peu pour être heureux ......