0
votes

SQL - Énumérez tous les clients que nous n'avons pas fait de vente à l'année 1996

Ceci est ma requête SQL fonctionnelle pour renvoyer les clients que nous avons vendus en 1996: xxx

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 en 1996, mais aussi ceux que nous avons fait: xxx


1 commentaires

Tagez votre question avec la base de données que vous utilisez.


3 Réponses :


0
votes

Essayez ceci xxx


0 commentaires

2
votes

Vous pouvez utiliser une sous-requête corrélée qui obtient les commandes de 1996 d'un client avec n'existe pas . xxx

Notez que vous ne devez pas mieux utiliser Année () sur OrderDate Comme cela peut empêcher l'utilisation des index des index, alors ralentissez la requête.


0 commentaires

2
votes

Nous pouvons construire sur votre requête existante et utiliser la jointure gauche anticipen: xxx

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.

Note latérale:

  • Utilisez toujours une jointure standard explicite (avec le mot clé ); Les jointures implicites doivent être évitées (sans virgule dans le de la clause )

  • 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


0 commentaires