Je veux extraire ces identifiants de compte qui sont présents en mai et en juin, mais pas en juillet. J'ai des données pendant 6 mois
J'ai essayé d'utiliser la condition (et / non) p> Je reçois toujours des identifiants de compte qui, en juillet p> p>
5 Réponses :
Vos formats de date ressemblent à Oracle, donc je répondrai à cette base de données.
L'idée est d'utiliser l'agrégation conditionnelle: p>
SELECT ACCOUNT_ID, DATA_MONTH
FROM DATA1
WHERE DATA_MONTH >= DATE '2018-05-01' AND
DATA_MONTH < DATE '2018-08-01'
GROUP BY ACCOUNT_ID
HAVING COUNT(DISTINCT DATA_MONTH) = 2 AND
MAX(DATA_MONTH) < DATE '2018-07-01';
L'utilisation de la fonction SQL Server Month vous donne un exemple compréhensible de la manière de résoudre ce problème.
SELECT ACCOUNT_ID FROM DATA1 WHERE MONTH(DATA_MONTH) in (5,6) AND YEAR(DATA_MONTH) = 2018 AND MONTH(DATA_MONTH) NOT IN (7) GROUP BY ACCOUNT_ID
On dirait que tu as manqué le " mais pas en juillet i>".
Vous pouvez mettre les conditions dont vous avez besoin dans un Je suppose que dans votre SGBM, il existe une fonction comme avoir code> Clause: mois () code> pour extraire le mois à partir de la date. de
Si vous souhaitez vérifier l'année aussi, vous pouvez le faire dans chaque état. Vous devez donc passer à: P> CASE WHEN MONTH(DATA_MONTH) = 7 AND YEAR(DATA_MONTH) = 2018 THEN 1 ELSE 0
SELECT ACCOUNT_ID, DATA_MONTH FROM DATA1 WHERE MONTH(DATA_MONTH) =5 AND MONTH(DATA_MONTH) = 6 GROUP BY DATA_MONTH
SELECT ACCOUNT_ID, DATA_MONTH FROM DATA1 WHERE MONTH(DATA_MONTH) BETWEEN 5 AND 6 GROUP BY Year(DATA_MONTH),month(DATA_MONTH)
Quel SGBD utilisez-vous? (En ce qui concerne la date / l'heure, de nombreux produits sont loin d'ANSI SQL conformes.)
Type de données Data_Month de colonnes?
Voulez-vous dire les deux i> mai et b> juin, ou c'est juste l'un d'entre eux bien? Montrez-nous quelques données de table d'échantillons et le résultat attendu - tout comme texte formaté, pas d'images. Et jetez un coup d'œil à Stackoverflow.com/help/minimal-reproductible-example avant de commencer.
Oui je voudrais les deux mai et juin mais pas juillet
Veuillez noter que la frappe dans toutes les casques est considérée comme impolie et considérée comme crie.
On dirait que vous devez faire une division relationnelle. Il y a un excellent article à ce sujet ici: Divisé Nous sommes Stand: le SQL de la division relationnelle