ORDER BY count(*) pour deux bases de données ensemble

ORDER BY count(*) pour deux bases de données ensemble - SQL/NoSQL - Programmation

Marsh Posté le 07-01-2007 à 15:38:15    

Salut,
J'ai toujours mes deux tables représentant les deux compagnies d'assurance, et je voudrais que ma requête me donne les trois experts ayant réalisé le plus d'expertises depuis le début de 2007, en réunissant les deux compagnies; j'ai donc fait la requête suivante, mais ça ne classe pas les NombreExpertises, et de plus, ça m'affiche six experts (3 de chaque compagnie) au lieu de 3 :
 
SELECT Mex.NomExpert, count(*) AS NombreExpertises
FROM [C:\Documents and Settings\ILLANA\Mes documents\Master Actuariat 2006-2007\Projet de bases de données\MUTMAT.mdb].Experts AS Mex, [C:\Documents and Settings\ILLANA\Mes documents\Master Actuariat 2006-2007\Projet de bases de données\MUTMAT.mdb].Villes AS MC, [C:\Documents and Settings\ILLANA\Mes documents\Master Actuariat 2006-2007\Projet de bases de données\MUTMAT.mdb].Sinistres AS MS
WHERE Mex.SiteWebExpert=MC.SiteWebExpert And MS.CodePostal=MC.CodePostal And MS.Date>#01/01/2007#
GROUP BY Mex.NomExpert
ORDER BY count(*) DESC
UNION (SELECT Fex.NomExpert, count(*) AS NombreExpertises
FROM [C:\Documents and Settings\ILLANA\Mes documents\Master Actuariat 2006-2007\Projet de bases de données\FGA.mdb].Experts AS Fex, [C:\Documents and Settings\ILLANA\Mes documents\Master Actuariat 2006-2007\Projet de bases de données\FGA.mdb].Villes AS FC, [C:\Documents and Settings\ILLANA\Mes documents\Master Actuariat 2006-2007\Projet de bases de données\FGA.mdb].Sinistres AS FS
WHERE Fex.SiteWebExpert=FC.SiteWebExpert And FS.CodePostal=FC.CodePostal And FS.Date>#01/01/2007#
GROUP BY Fex.NomExpert
ORDER BY count(*) DESC);
 
Quelqu'un pourrait me dire pourquoi ça ne marche pas ?

Reply

Marsh Posté le 07-01-2007 à 15:38:15   

Reply

Marsh Posté le 15-01-2007 à 10:37:27    

essaye déjà de rendre ton code lisible pour nous, enlève les chemins à rallonge et tout.
 
ensuite explique moi pourquoi tu fais une union :)

Reply

Marsh Posté le 15-01-2007 à 10:47:13    

Dans le titre : "deux bases de données"
 
Quid?

Reply

Marsh Posté le 15-01-2007 à 11:01:05    

il en a bien deux, regarde ses from

Reply

Marsh Posté le 15-01-2007 à 15:26:13    

Non merci. Est-ce bien pertinent?

Reply

Marsh Posté le 15-01-2007 à 21:40:30    

En fait, j'ai deux bases de données représentant 2 compagniez d'assurance; donc elles contiennent les mêmes tables (dont une table experts et une table sinistres chacune) mais pas les mêmes données. Et je voudrais que ma requête me donne les trois experts ayant réalisé le plus d'expertises depuis le début de 2007, en réunissant les deux compagnies, donc les deux tables ; mais ma requête ne classe pas les NombreExpertises, et de plus, ça m'affiche six experts (3 de chaque compagnie) au lieu de 3.
Mon idée serait de réunir les deux attributs NomExpert de chaque table Experts (MS.NomExpert et FS.NomExpert) de chaque base en un seul, pour obtenir une colonne qui réunisse les noms des experts des deux compagnies ensemble, et qui donne aussi dans une autre colonne le nombre d'expertises que chacun a effectué.
 
 
Merci de votre aide. J'espère avoir été clair.

Reply

Marsh Posté le 16-01-2007 à 10:20:01    

ils ne savent pas faire de bases de données c'est incroyable !
 
pourquoi ne pas simplement avoir mis une table avec les différentes compagnies et les associations qui vont bien ?
 
 
 
pour ton pb sort les 3 meilleurs de chaque base puis prends les 3 meilleurs des 6 et on en parle plus !

Reply

Marsh Posté le 16-01-2007 à 18:11:16    

Ils nous demandent de faire une base pour chaque compagnie.
Je suis arrivé a avoir les 3 meilleurs des 6, le problème c'est que ça me met 4 colonnes au lieu des 2 que je veux. En fait g fait une requête pour chaque compagnie (les requêtes g et g2), dans laquelle access doit me sortir deux colonnes : une pour le nom de l'expert, et une pour le nombre d'expertises et je les ai réunies dans une 3è requête.
Mais cette dernière requête m'affiche les 2 colonnes de chaque requête, soit une colonne g.NomExpert, une g2.NomExpert, une g.NombreExpertises et une g2.NombreExpertises

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed