2017-10-20 5 views
-3

Je me demande si quelqu'un pourrait me donner une idée sur cette requête. J'ai une liste de membres et pour chaque membre j'ai une date donnée (cela représente une date d'enquête) Existe-t-il une requête SQL facile pour obtenir le nombre de commandes créées dans l'intervalle: donné et +30 jours? En gros, les membres passent une commande dans les 30 jours qui suivent l'enquête. Je reçois cette liste tous les mois. Dans ma base de données, il y a une table 'members m' et une table 'orders o'; la table 'orders' a un champ 'o.created' comme date.comment obtenir le nombre de commandes pour une liste donnée de membres et intervalles donnés (égal à given_date + 30day)

Je peux facilement effectuer une recherche sur un niveau de membre individuel, mais la liste des membres peut être grande, plusieurs centaines de membres distincts & données_données.

example

+0

Qu'avez-vous essayé jusqu'à présent? Aussi, avant de poser une question, il est bon d'apprendre à poser des questions. https://stackoverflow.com/help/how-to-ask – Eric

+0

Voir https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to -me-être-un-très-simple-sql-requête – Strawberry

+0

désolé, je suis nouveau à ce ... je vais prendre votre avis sur poser des questions .... jusqu'ici je seulement vérifié pour voir si tout simillar des questions ont été posées avant ... mais n'ont pas pu trouver quelque chose assez proche ... – dano

Répondre

0

Vous pouvez utiliser GROUP BY avec COUNT, .: par exemple

SELECT id, COUNT(*) 
FROM members 
WHERE given_date BETWEEN '2017-10-12' AND DATE_ADD('2017-10-12', INTERVAL 30 DAY) 
GROUP BY id; 
+0

merci Darshan ... la chose est ... chaque memberID a une date donnée différente ... si tout aurait la même date de base, la suggestion ci-dessus aurait probablement fonctionné ... – dano

+0

Cette solution fonctionnerait correctement pour toutes les valeurs 'given_date' qui tombent dans cet intervalle. Les ID membres n'ont pas besoin d'avoir la même valeur 'given_date'. –

+0

Je n'ai probablement pas expliqué correctement ... la base de données a les membres et les tables de commandes; La table des membres aura les membres.id, la table des commandes aura les ordres.les dates créées .... les dates données ne font pas partie de la base de données, elles sont externes à l'ensemble de données. Je cherche à extraire le nombre d'ordres créés dans l'intervalle de 30 jours à partir de given_date .... pensez-vous que cela signifie que j'ai besoin de créer une table temporaire dans la base de données (qui contient l'appariement member.id, given_date et ensuite – dano