[HyperFile] requete de selection avec condition de comptage
Bonsoir,je vous simplifie mon probleme.
Deux tables : CLIENT(IDCLIENT,NOM,...)
VISITE(IDVISITE,IDCLIENT,DATE,TYPE,...)
C'est une jontion 1-N comme vous le voyez.
Je veux repondre a la question "selectionne moi les clients d'un nom donne qui ont un nombre donné de visites d'un type donné, a une periode donnee"
J'ai une solution qui marche:
Code sans "Join" complet
Code:
1 2 3 4 5 6 7 8
| SELECT * FROM CLIENT WHERE
CLIENT.IDCLIENT IN (
SELECT VISITE.IDCLIENT FROM VISITE GROUP BY
VISITE.IDCLIENT HAVING COUNT(*) = pNombreVisites
AND VISITE.TYPE = pTypeVisite
AND VISITE.DATE BETWEEN 'pDebut' AND 'pFin'
)
AND CLIENT.NOM = pNomClient |
Seulement, ce n'est pas ultra performant, j'ai remarque une tres grande amelioration des perfomances en utilisant INNER JOIN.
Et la je bloque, je vois bien comment obtenir "selectionne moi les clients d'un nom donne d'un type donné, a une periode donnee" mais je perds le "qui ont un nombre donné de visites"
Or c'est une donnee imdispensable a prendre en compte.
Quelqu'un voit comment je pourrais avoir le beurre et l'argent du beurre? Merci d'avance
Code avec "Join" incomplet:
Code:
1 2 3 4 5
| SELECT * FROM CLIENT JOIN VISITE ON
CLIENT.IDCLIENT = VISITE.IDCLIENT
AND VISITE.TYPE = pTypeVisite
AND VISITE.DATE BETWEEN 'pDebut' AND 'pFin'
WHERE CLIENT.NOM = pNomClient |
A noter: je travaille avec windev et hyperfile, j'ai l'impression que helas, toputes les commandes sql ne sont pas supportees (je n'arrive pas a faire de JOIN multiples par exemple, mais c'est un autre probleme)