2012-04-20 3 views
0

Une entreprise peut avoir un ou plusieurs offres Une offre a un certain nombre d'emploisPouvons-nous avoir deux fonctions count() dans une seule requête?

Ainsi: les entreprises < = offre < = numJobs

SELECT Count(t_offer.fkCompany) AS companies, 
     Count(t_offer.id) AS offers, 
     Sum(t_offer.nJobs) AS numJobs 
FROM t_offer 

Par exemple:

idOFFER fkCOMPANY  numJOBS 
    1   1   1 
    2   3   2 
    3   8   1 
    4   1   2 

La requête devrait être:

entreprises (3) < = offres (4) < = numJobs (6)

mais le résultat est:

entreprises (4) < = offres (4) < = numJobs (6)

Est le seul moyen de le faire avec plus d'une requête?

+1

Oui. Astuce: Ils peuvent être sous-requêtes –

+0

Oui vous pouvez et vous pouvez également utiliser des fonctions agrégées imbriquées :) – Milee

Répondre

1

Je présume que vous voulez le numéro de distinct entreprises?

SELECT Count(DISTINCT t_offer.fkCompany) AS companies, 
     Count(t_offer.id) AS offers, 
     Sum(t_offer.nJobs) AS numJobs 
FROM t_offer 
+0

Oui, c'est. Mais je le fais à travers l'accès et ça ne marche pas, alors ... Peut-être avec une requête passthrouh directement sur MySQL. – Joe

Questions connexes