SQL compter de la date de la gamme

Je suis en train d'interroger ma base de données SQL pour obtenir le nombre de commandes effectuées par chaque client dans une certaine plage de dates.

J'ai une liste de commandes comme suit

CustomerName       ClientID        DateOrdered
Customer No.2         10            2011-11-25
Customer No.3         11            2011-10-15
Customer No.3         11            2011-11-25

et je veux être en mesure de savoir combien de commandes ont été faites par un client spécifique, par exemple entre 2011-11-1 et 2011-11-30, il devrait en résulter :

CustomerName       ClientID        Number
Customer No.3         11             1
Customer No.2         10             1

Jusqu'à présent, j'ai réussi à obtenir ce

SELECT CustomerName, ClientID, COUNT(*) AS Number      
FROM Orders t     
GROUP BY CustomerName, ClientID      
HAVING COUNT(*) =      
(SELECT MAX(Number)         
FROM          
(SELECT CustomerName, ClientID, COUNT(*) AS Number             
FROM Orders            
GROUP BY CustomerName, ClientID ) x       
WHERE CustomerName = t.CustomerName )

Qui me donne à chaque commande, le client a jamais fait

CustomerName       ClientID        Number
Customer No.3         11             2
Customer No.2         10             1

Vais-je sur la bonne façon de résoudre ce problème ou est-il un moyen plus simple que j'ai complètement négligé!

  • hors sujet: Pourquoi vous avez CustomerID et CustomerName dans le tableau de commande? Pour toute autres informations sur le client, vous devrez joindre à la clientèle tablw. Si vous tapez le nom du client et de vous corriger, vous aurez besoin de réviser la table des commandes de changement ainsi. Si seulement la clé étrangère de l'Id client serait plus exact...
  • Il ne devrait même pas être là! Merci de me rappeler de le prendre 🙂
InformationsquelleAutor kiwijus | 2011-11-28