Ceci est ma requête SQL fonctionnelle pour renvoyer les clients que nous avons vendus en 1996: maintenant j'essaie de montrer le contraire; Renvoyez tous les clients que nous ne sont pas vendus en 1996 (même si nous leur avons vendu dans d'autres années). C'est ce que j'ai, cependant, il retourne les deux clients que nous ne les a pas em> en 1996, mais aussi ceux que nous avons fait: p>
3 Réponses :
Essayez ceci
Vous pouvez utiliser une sous-requête corrélée qui obtient les commandes de 1996 d'un client avec Notez que vous ne devez pas mieux utiliser n'existe pas code>.
Année () Code> sur
OrderDate Code> Comme cela peut empêcher l'utilisation des index des index, alors ralentissez la requête. P> P>
Nous pouvons construire sur votre requête existante et utiliser la jointure Cette phrase comme suit: essayez de rejoindre chaque client avec les commandes qu'ils ont placées En 1996, et filtrer sur ceux sans ordre. P> Note latérale: p> Utilisez toujours une jointure standard explicite (avec le mot clé code>); Les jointures implicites doivent être évitées (sans virgule dans le Comme aussi commenté par Sticky Bit (dont la réponse est valide et que je l'ai prospérée), l'utilisation de la comparaison de la date est une meilleure performance de formulaire que de compter sur les fonctions de date p> l> l>
ul> p> gauche code> anticipen:
de la clause code>) p> li>
Tagez votre question avec la base de données que vous utilisez.