En raison de la nature de ma requête, j'ai des enregistrements avec un nombre de 3 qui correspondent également aux critères d'avoir un nombre de 2 et ainsi de suite. Je me demandais s'il était possible d'interroger 'ayant plus de x et moins de 7'? Comment pourrais-je écrire cela. Voici mon code actuel.
GROUP BY meetingID
HAVING COUNT( caseID )<4
Je voudrais quelque chose comme
GROUP BY meetingID
HAVING COUNT( caseID )<4 AND >2
De cette façon, cela ne compterait que pour exactement 3
GROUP BY meetingID
HAVING COUNT(caseID) < 4 AND COUNT(caseID) > 2
Il n'est pas nécessaire de faire deux vérifications, pourquoi ne pas simplement vérifier le nombre = 3:
GROUP BY meetingID
HAVING COUNT(caseID) = 3
Si vous souhaitez utiliser les contrôles multiples, vous pouvez utiliser:
GROUP BY meetingID
HAVING COUNT(caseID) > 2
AND COUNT(caseID) < 4
Pour votre exemple de requête, la seule valeur possible supérieure à 2 et inférieure à 4 est 3, nous simplifions donc:
GROUP BY meetingID
HAVING COUNT(caseID) = 3
Dans votre cas général:
GROUP BY meetingID
HAVING COUNT(caseID) > x AND COUNT(caseID) < 7
Ou (peut-être plus facile à lire?),
GROUP BY meetingID
HAVING COUNT(caseID) BETWEEN x+1 AND 6
Ici, j'écris une requête complète qui effacera tous vos doutes
SELECT BillingDate,
COUNT(*) AS BillingQty,
SUM(BillingTotal) AS BillingSum
FROM Billings
WHERE BillingDate BETWEEN '2002-05-01' AND '2002-05-31'
GROUP BY BillingDate
HAVING COUNT(*) > 1
AND SUM(BillingTotal) > 100
ORDER BY BillingDate DESC
Quelque chose comme ça?
HAVING COUNT(caseID) > 2
AND COUNT(caseID) < 4